/ nodebb

NodeBB 1.13.0: a little snow won't slow us down

Apparently the last time there was this much snow in Toronto was 1951, back when "bulletin boards" were just things you stuck push-pins into. Times sure change! But one thing that won't change is our ongoing efforts to make NodeBB the best forum software out there.

Under the hood are tons of changes to improve NodeBB, but here are some of the bigger ones we wanted to highlight:

Package Manager Telemetry Upgrade

New installs of NodeBB now send telemetry information to the NodeBB Package Manager (nbbpm) to track which plugins are working. This will help add "real-world validation" to packages published on nbbpm. It's important to note that this process does not send any site or user data, but rather only a hash of the site and list of working plugins. Pre-existing installs will not have this option enabled. You can opt-in and out of this reporting by going to /admin/extend/plugins.

Screenshot showing compatibility information for the Adsense plugin

Ability to change post ownership

Amoung many small but useful additions in the new release is the ability for moderators or admins to change the ownership of a post. This can be performed via the Topic Tools menu.

change_owner.png

Quill Composer WYSIWYG Editor

Providing a WYSIWYG editor option is a regular request. A pre-release version of the Quill composer plugin is now availible at https://github.com/NodeBB/nodebb-plugin-composer-quill/. Note that Quill is not compatible with Markdown, so all posts made before the composer's installation will need to be migrated via the bundled migration tools.

quill-desktop

More nauanced Moderator privileges

In an effort to provide even more granular control in terms of who can do what on your forum, the Delete and Purge Topic privleges have been broken out from the Moderate privilege. This means you can now have mods who have the ability to pin, lock and move topics, but they will need an Admin or other user with the explict privilege to remove content.

awaitable everything (almost)

The bulk of the development work this time around has been to eliminate technical debt and bring NodeBB to a state that follows the javascript trend more closely. We often receive requests asking whether it is possible to have internal methods return promises. In the past, we've hesitated as we were not sure whether promises superior to callbacks, but with the introduction of await into Node/V8, we've decided to go all-in and refactor our codebase so that all methods (including websockets) are awaitable.

async library updated to v3.x

If you have a plugin or theme that relies on the older 2.x branch of async, you may run into incompatibilities for certain async methods (such as whilst, until, etc.).

If you currently var async = module.parent.require('async');, you should install async locally and const async = require('async'); instead.

Alternatively, you can update your plugin to support the latest async module (changelog here).

HTML sanitizer enabled by default

Prior to this version, NodeBB contained no built-in HTML santization in order to not cause undue influence on post data. Plugins handled this by bundling their own sanitization (e.g. Markdown sanitizes input as part of its parsing).

If a forum were set up with no parser at all, then it was possible to introduce XSS as there was no sanitization. For that reason, we have set up a minimal HTML sanitization step during the post parsing phase.

If the sanitizer is too intrusive, please let us know and we can tweak the default shipped configuration for future versions of NodeBB.

Developer FAQ category on our community forum

Not a product update as such, but we now have a developer FAQ area on our own forum at https://community.nodebb.org/category/26/developer-faq. This is intended for "deep-dives" into questions often asked by those learning to develop plugins and themes for NodeBB, and is part of our effort to improve documentation. If there is a development-related question you'd like to understand in more detail, please let us know by creating a topic and tagging us in the forum (@julian, @baris, and @psychobunny).

If you are hosting NodeBB on your own server, as usual we recommend that you update to the new release. If you encounter any issues, please post them in the community support forum. If your site is hosted with us, please drop us a line at support@nodebb.org to organize an appropriate time to perform the upgrade.