Some users might think that Publii is already pretty fast a smooth, but that's no reason not to try to make it faster. In v.0.33, which is now available for download, we've got speed increases across the board thanks to a rewritten SQLite engine and ASAR archive implementation, improved GitHub deployment, and our regularly-scheduled program of improvements and bugfixes.
We're sure you're familiar with the routine by now; grab the latest install package from the Publii download section and run it, and it'll take care of all your updating needs. And if you'd like to know a bit more about what's been added in this release, read on!
Rewritten SQLite Engine for Faster Renders; Improved Launch Speed
We could've titled this section simply 'Rewritten SQLite Engine', but that would be doing the work done by our development team a disservice; the benefits of this rewrite will provide some rather impressive speed-gains when rendering your website and lays the building blocks that will allow to add parallel editing in future releases i.e. allowing two users to work on a single Publii website from different computers and locations, so it's definitely something worth trumpeting about.
So what's changed? The purpose of the rewrite was to switch from using the standard SQLite library to better-sqlite3, which claims to be the 'fastest and simplest library for SQLite3...' with good reason. In our testing, the rendering process (that is, what happens when you preview or sync your website) was nearly 4x faster than before the rewrite!
In smaller sites the difference might not be as noticeable, but for users who have been at this for a while and have sites with a lot of articles you'll be spending a lot less time waiting around for rendering to finish when you're syncing your site.
That's not the only big speed increase though; we've implemented the ASAR archive format for Electron into the Publii install. Thanks to this you can expect to see some pretty impressive start-up times for the app, as well as faster installs. How much faster? Just like the SQLite addition, our testing shows an increase of up-to 4x the current speed!
Enhanced GitHub Pages Performance and Options
If you're creating a site via GitHub Pages for your project, then Publii was already a good choice; built-in support means that getting a good-looking page set-up was easy as pie. However, there were a few issues and improvements that we wanted to implement to make it more efficient and reliable.
First off, users with slow or spotty connections could run into issues with deployment to GitHub Pages; the code for this method has been rewritten and improved to prevent any errors in future. If you're at the other end of the scale with a fast, reliable connection, then you'll find a new option in the Server Settings page that allows you set the number of parallel operations that can be run, speeding up the deployment process. However, if your connection isn't the best it's a good idea to stick with the default 3 parallel operations, as this limits the chance of an error.
Finally, our Dev Team have been doing some technically hocus-pocus to fix an issue with calculating SHA-1 hashes for local files; basically, this means that the number of files that need to be checked during deployment to GitHub Pages will be decreased, speeding up the process somewhat.
New getPostByTags and getTags helpers for developers
In this release, we have also not forgotten about the theme developers and added some new helpers: getPostByTags allows you to display posts by tag/tags and the second getTags loads tags data.
New Theme Section and Updates
In this release a brand-new Themes section has been added which will make it easier to track your available themes and get access to new ones. The preview images are larger, making it easier to see each theme's layout, and a button links to the Publii Theme Marketplace should you want to download another theme.
There's also improvements in the themes themselves; pagination has been fixed so that when the order is set to descending the 'next' and 'prev' buttons will work correctly. Additionally, issues with the Pinterest share button not displaying the article image and general w3c validation errors have been corrected.
We're not quite done yet; the Gallery styling has been changed so that there's no 'jumping' between the gallery thumbnails and their full-sized image when viewing images, making for a smoother experience.
Alongside the bigger additions there's the usual collection of more minor improvements that nevertheless make the overall Publii experience that little bit better:
- Added detection of upload permission issues with FTP and SFTP.
- Added an option to display the last modification date of a post in the post listings.
- General performance improvements in the Post and Line Editor.
- Updated to Electron 3.1.3.
- Added a new S3 region; eu-north-1 (Stockholm).
- Reduced the clickable area size of the sorting columns to make it more intuitive.
- Improved the CSS minification process.
- Added amp-video support.
- Improved descriptions for the GitHub deployment method options.
As you'd expect, we've also been squashing some irritating bugs on the road to this release:
- Fixed the post pagination under the post content on single post pages.
- Fixed issues when author/tag has no posts
- Fixed issues with thumbnail regenerate
- Fixed issues with the 12-hour time format in the publication date in the post editor.
- Fixed issue with usage of the down-arrow in the post editor.
- Fixed issue with missing canonicals on AMP pages.
- Fixed issue with the styling of 'pre' elements in the editor.
- Fixed issues with character encoding that could have lead to validation issues.
- Fixed incorrected positioning of the Posts column on listing pages.
That's all for this update, but we'll be back again soon with even more new additions; we have a lot of new additions planned for this year, so make sure to follow us on Twitter or keep an eye on the blog for any new updates. Also, don't forget that if you have any suggestions for future features, need help with using Publii, or want to report issues with the app, you're always welcome to get in touch via our Community Hub; we're always happy to hear from our users!