Beta Release v0.24.0

Need a way to categorise your Books? Well BookStack v0.24 is the release for you bringing Bookshelves along with a host of other notable features such as revision removals, social authentication auto-registration and Arabic support.

Please Note, Due to required re-working of some settings you may have to re-apply any homepage options you’ve previously set upon updating to v0.24. See the update instructions page linked below for further info.

Bookshelves

Bookshelves have now been added as a new layer to the organisation system. Bookshelves offer a way to group and categorise books. A single bookshelf can contain multiple books and a single book can be contained in multiple bookshelves.

This is only the initial functional implementation of bookshelves. Currently the interface for bookshelves is very similar to that for books and chapters. As part of a bigger design update we’ll be looking to make bookshelves more unique in respect to their functionality and design.

As with books, bookshelves can have custom permissions set upon them but they differ in the fact the permissions won’t cascade down to child items as they do with books & chapters. This is due to fact a book can be in multiple bookshelves. Instead, within the permissions view for the shelf, you have the option to copy the shelf permission settings to all child books:

Thanks to @Abijeet it’s now possible to remove particular revisions. This can be useful if you ever need to remove sensitive information that was part of a previous page version without having to delete all revision history in the system.

A new configuration option has also been added to control the amount of revisions kept by BookStack. Previously there was a limit of 50 versions enforced. This remains the default but it is now possible to increase or even remove this limit by setting the following in your .env file:

# Set the revision limit to 100 REVISION_LIMIT = 100 # Alternatively, You can set to 'false' to disable the limit altogether. REVISION_LIMIT = false

Social Auto-Registration & Auto-Email-Confirmation

Previously, to register in the system, you’d need to visit the register page and select your login option, you were not able to register via the login page. This also required registrations to be enabled and prevented social registration if using LDAP as your authentication option.

With this release it’s now possible to configure, per authentication option, if users should be auto-registered upon login in the event they do not already have an account. This allows a much smoother sign-up process. It’s also possible to automatically mark emails as confirmed for particular authentication options if you trust the service to provide the correct email address. Domain restrictions will still be respected, if set, for both of these options.

Details on configuring these options can be found here.

Arabic and Right-to-Left Text Support

This release brings quite a notable addition to BookStack’s language support. Thanks to @kmoj86 Arabic is now a language choice. This is the first right-to-left language in BookStack so some functionality has been added to support right-to-left text.

The WYSIWYG editor will now default it’s text direction based on your language setting. In addition, If a right-to-left language is in use then additional toolbar options will show to provide control over text direction:

Bullet-point styles have been updated to ensure they display correctly when displayed in a right-to-left manner and page content should show in the correct direction depending on the text detected within.

Note, Right-to-left text support is in its early stages so there’s likely to be further updates needed. Please feel free to raise any issues found on GitHub.

Once again, We’ve received a whole load of translations by wonderful people. Here are the languages that have received updates and their contributors:

🇪🇸 Spanish - Thanks to @moucho.

🇩🇪 German - Thanks to @vriic.

🇷🇺 Russian - Thanks to @mullinsmikey.

🇧🇷 Brazilian Portuguese - Thanks to @DeehSlash.



Full List of Changes

Added bookshelves, A level above books. (#947, #1023, #95)

Added ability to remove particular revisions. Thanks to @Abijeet. (#1008, #784)

Added social auto-registration option.

Thanks to @ibrahimennafaa. (#966, #574, #572, #477)

Thanks to @ibrahimennafaa. (#966, #574, #572, #477) Added Arabic language and initial RTL language support. Thanks to @kmoj86. (#945, #939)

Added ability to scroll past the end in the Markdown editor. (#1020)

Updated default cookie name and made configurable via .env file. (#1018)

Updated revision limit to be configurable. (#1004)

Updated export templates to include custom styles. (#981)

Updated database migrations so MyISAM engine is never forced and so that fulltext index support is not required. (#726)

Updated Spanish translations. Thanks to @moucho. (#1025, #1021)

Updated German translations. Thanks to @vriic. (#983, #1026)

Updated Russian translations. Thanks to @mullinsmikey. (#1002)

Updated Brazilian Portuguese translations. Thanks to @DeehSlash. (#986)

Fixed chapter content dropdown acting unreliably. Thanks to @Abijeet. (#1009, #960)

Fixed duplicate role attachment database error that could occur on LDAP group sync. (#1003)

Fixed issue in WYSIWYG editor where the “No color” option would disappear or not be present. (#999)

Fixed issue where code block content may be hidden by the copy button. (#980)

Fixed issue in WYSIWYG where it could be hard to escape a blockquote section. (#961)

Fixed hardcoded English text in search page. (#864)

Fixed issue causing Safari to download items as .dms files. Thanks to @ajvolin. (#581)

Next Steps

As mentioned above, The Bookshelves implementation has been functionality focused for this release so I’ll be thinking about how to bring in a unique Bookshelf design to make them more effective in use. I’m sure we’ll also see some further thoughts and requests as people start to use Bookshelves.

To support the implemented, but not documented, themeing system I’d like to revamp and clean-up all views used by the system. This would probably tie in with fleshing-out the Bookshelf design work as part of a bigger design update which also enhances mobile support.

To support future back-end features such as notifications, exports and API support I’d like to refactor a chunk of the existing code that deals with shelves, books, pages & chapters to make such future developments easier. This will probably be my own focus for the next couple of weeks.