The latest Publii beta released bringing big speed increases, improvements to the overall app UI

Beta number 0.18.2 for Publii is here, and after the bigger feature additions of the last few releases this time it's all about what's going on under the hood, with plenty of renderer updates that provide some pretty incredible boosts to the app, making it even more convenient. Plus there's new error message displays and other little additions that'll make your day-to-day use of Publii more intuitive, as well as the usual batch of fixes to clean up those annoying little bugs that crop up now and then!

Before we get into all the additions in this release though, don't forget that you can skip reading about what's been added and just get the update right now if you'd prefer to test-drive it yourself; just wander over to the Publii frontpage and hit the download link for your OS. The install package auto-detects whether your computer already has Publii installed and updates the existing install, so no need for separate update/install downloads.

With that said, let's get on with looking at what's new this time around!

Rebuilt rendering engine

The biggest update for this release isn't something that you're not going to see when preparing your site, but you certainly will notice it when it comes to deployment! When Publii was first created speed was a important consideration, but more important was that the code that powered the app was stable and functional. With the core features implemented and improved, we could dedicate more time to optimizing Publii's code to make it even faster.

Faster rendering process

The key area that we think needed addressing was in the renderer (that is, the bit of code that generates your website files before they are synced with your server). Pretty much all the creation aspects of Publii are already ultra-fast, but once a website has progressed to 50-100 articles in its content then the time for the site to be generated could be rather long, taking more than a minute to complete, with the time to render increasing as more and more articles were added.

The rebuilt engine is much better optimized for such large-scale tasks, making rendering run up to 6 times faster than before, with even larger increases for larger websites with a lot of articles. To put this upgrade into perspective; one of our users reported that their giant 1800-article website went from taking nearly 30 minutes to render to just 5 minutes once the optimizations were added! With these changes you'll be able to create whatever size of website you wish without worrying about delays when it's time to deploy or sync.

Rewritten regenerate thumbnails engine

We told you that this release was all about what's under the hood, and we're continuing on that theme with an update to the regenerate thumbnails engine. Thumbnails are pretty much essential for your website, since they'll be used in article previews aimed at encouraging visitors to click around and stay on your site, but in earlier versions of Publii they could be slow to generate, or subject to errors. This was also true when regenerating thumbnails after switching to a new theme with different thumbnail settings.

Rewritten regenerate thumbnails engine

The rewritten thumbnail generation engine has both a much smaller memory footprint, using much less memory when generation is being run, and also offers increased stability, meaning less errors and faster completion.

Additional theme custom HTML options

The sites that Publii can create with its built-in themes can look great, but even so many users will want to expand their functionality or layout with their own custom HTML content, such as ads. In the new beta release the included Publii themes have an expanded set of custom HTML locations; as well as inserting custom HTML in the head, body or footer of the theme, you will now be able to insert it before or after every post.

Theme Custom HTML options

Though the feature has been implemented in all our current themes, not all themes will have both the After every post and Before every post option; some of them will only have one or the other. This is due to the theme having a layout that would not work with one of the options; for example, the Simple theme uses a large photo for its posts and having custom HTML above this would not look good at all, so it is restricted to adding custom HTML after the post only. To use this new feature, head to the Tools → Custom HTML section of the Publii interface.

Restrict content to AMP/Non-AMP version of your site

The problem with AMP versions of sites is that they are well and truly static; they're like a screenshot of your site. This isn't a huge problem for many users, but if you have some additional functionalities such as forms implemented on your site then the AMP version won't be able to use them.

To help such users get around this issue, we've added the ability to limit content exclusively to the AMP or non-AMP version of the site; this way you could have a form that appears on the main version of your website, but replace the form with a button linking to the full version of the site in the AMP version so mobile users visiting the AMP site will still have access to the expanded options.

Limiting content is easy; you just need to wrap the content that you want to limit in the appropriate tags in the source code editor of the post edit screen (click on the icon that looks like an empty HTML tag to open the source code editor). You'll find a simple breakdown of how to limit the content in the Publii Developer Documentation.

Expanded rendering error message display and logs

The increased stability afforded by the renderer optimizations means you won't encounter errors often, but when you do, it's useful to have as much information as possible to let you know where things went wrong. The latest beta release includes a new error display window that appears if there are any rendering errors when using the preview link in the Publii sidebar, as well as error logs for when rendering or deployment threads crash, making it easier to narrow down the cause of any deployment issues.

Rendering progress information and logs

We've speeded up the renderer, but you'll still need to wait a little while when deploying or syncing your site; we're a long way from having the power to instantly render websites! Still, with the progress bar added to the sync window, preview link and "Save & Preview" buttons, you can at least see how things are coming along rather than twiddling your thumbs and hoping that your computer hasn't frozen on the sly.

Rendering process logs

Render timing information is now also logged in the rendering-process.log file which, combined with the other error messages and optimizations, will help you well-informed on every aspect of your site rendering/deployment.

Output file location selection

A nice and simple addition that's nevertheless something that our users have requested; now when deploying to an output file when syncing, rather than uploading files to a server or third-party source, you can choose where the file will be output to. When manual output was added it automatically deployed to the Publii folder, so this kind of addition simply makes Publii more intuitive.

Render empty tag pages option

Its a good idea to keep your content in order, and if you've got a long-term plan for your site articles you may have already created several empty tags for use later. Usually, Publii will simply ignore these tags during deployment or rendering and no tag page will be created, given that there isn't any content to add to the page. However, in keeping with Publii's commitment to flexibility, we've added the option to have Publii create these empty tag pages anyway during sync; you'll find the options for enabling this in the SEO Settings section of the site.

Render empty tag pages

Preview window enhancements

It's pretty easy to get neurotic about how your site looks, and to keep opening up the preview window to get a look every time a few changes are made. Of course, this made the little delays when generating previews rather irritating. To combat this, we've enhanced the preview window rendering engine too, so you can indulge your neurotic side as needed to make sure you get your site exactly right.

But that's not all. We've also made some extra enhancements to make using the preview more comfortable; the preview window now opens faster, and if you've enabled DevTools in the preview window you'll find the tools now reflect the "live-website" context with regards to the information provided, rather than the slightly-different review window context.

External links in previews will now function correctly; clicking on external links will now open them in your default browser. Lastly, custom error messages for non-existing files have been added to the preview, for easier tracking of issues.

Create submenu option

Another small addition that improves general use of Publii, this time in menus. In prior versions of Publii to create a submenu item you first had to create your menu items, then drag and drop them into the layout you want. That's still possible in this release, but an extra Add submenu option has been added to each menu item so that items can be immediately placed correctly.

Add Submenu button

Additions for developers

On the developer side of things there's some minor but useful extras in this release. The ability to define the custom HTML areas of a created theme has been added, and themes can now override post editor settings in much the same way as you could previously via the app configuration directory. With these additions, developers can get that little bit more creative in their themes!

Other Improvements

We've gone over the main features that have been added for this beta release, but there's some other little things that have been updated that aren't life-changing, but will still make general usage of the app more convenient and comfortable. This time around the improvements made are:

  • Updated Electron to version 1.7.5.
  • Improved excerpt generation so that spaces are added between phrases taken from different paragraphs to make them more understandable.
  • Improved multi-screen support for users going more in-depth with Publii usage.
  • Made some light improvements to the overall app UI.
  • Implemented additional tests when uploading a new theme via application settings.

And bugs fixed too!

No matter how careful a developer one can be, in any large project there's guaranteed to be errors, bugs and other issues cropping up. This release squashes the following bugs:

  • Removed duplicate entries from sitemap.
  • Fixed issue with Google Analytics script in AMP version of the site.
  • Fixed rendering error seen after switching themes or alternative post/tag/author templates.
  • Fixed incorrect item links when the tag slug is different to the 'sluggified' tag name.
  • Fixed wrong dates in the JSON Feed.
  • Fixed bugs in the {{menuItemClasses}} helper.
  • Fixed issue where the Remote Path setting from FTP configuration affected other methods of deployment when it was not in use.

So another round of additions comes to an end; not so much in the feature set this time, but we're sure you'll be happy once you see how quickly and smoothly deployment is now! As ever, if you've run into a bug, have an idea of a new feature you'd like to see in future Publii releases, or just need a hand with using the app, why not drop in to our Community Hub and let us know? We always like to hear from and help our users after all. Otherwise, we'll see you soon once we've got some fresh new updates for you to try!

Publii is ready to download and install, however, due to the new rendering engine, we recommend a full back up before you install it.

Download Publii Beta