]> BookStack Code Mirror - website/blob - content/blog/2025/bookstack-release-v25-05.md
Completed first writing pass on blogpost and docs text
[website] / content / blog / 2025 / bookstack-release-v25-05.md
1 +++
2 categories = ["Releases"]
3 tags = ["Releases"]
4 title = "BookStack Release v25.05"
5 date = 2025-05-31T14:30:00Z
6 author = "Dan Brown"
7 image = "/images/blog-cover-images/cc-by-2/karen-roe-pond.jpg"
8 slug = "bookstack-release-v25-05"
9 draft = false
10 +++
11
12 Today we have the May 2025 release of BookStack. The headline features
13 of this release are focused on new comment features but we have some other goodies
14 packaged in also!
15
16 * [Update instructions](/docs/admin/updates)
17 * [GitHub release page](https://github.com/BookStackApp/BookStack/releases/tag/v25.05)
18
19 **Upgrade Notices**
20
21 TODO
22
23 - **Title** - Detail
24
25 TODO - Video
26 <!-- {{<pt iUZWrk4oxLYc2dFsAPjDyY>}} -->
27
28 ### Content Comments
29
30 In a platform like BookStack it's quite likely that page comments will be referring
31 to a specific part of the page content, which you'd previously need to describe
32 as part of the comment text.
33 With this release, it's now possible to directly & visually reference a part of the 
34 page content in a comment.
35 This is achieved via a new button in the content popover, which is shown when part of the page text
36 is selected:
37
38 TODO - image of popover with comment
39
40 Clicking this will start a new comment with a reference to the selected area & text range.
41 When viewing the page, this will then show as a highlight and marker for that content:
42
43 TODO - Image of inline comment display
44
45 Clicking the comment marker will then open up that comment thread:
46
47 TODO - Image of inline thread
48
49 From there you can close or read the thread within this inline display, or click the "Jump to thread"
50 action to jump to the full thread in the comments area, where you can edit or reply where desired.
51
52 When viewing the comments area, comments which reference content will have an indicator to reflect their connection
53 to specific content. This may show as outdated if the referenced content has changed since the comment
54 was made. Clicking on this indicator will jump the user to the relevant section on the page.
55 If the referenced section no longer exists at all, this indicator will become orange and can't be clicked.
56
57 TODO - Image of range of indicator presentations
58
59 Some of these features are also supported in the page editor.
60 When using the new WYSIWYG editor, opening the comments sidebar will show the inline comments 
61 (where possible) and the reference indicators will be active as explained above.
62 This isn't supported in the markdown or the old default WYSIWYG editor, where the 
63 indicators will instead remain gray to represent being inactive.
64
65 TODO - Image of editor with comments
66
67 One thing to note is that only the starting comment of a thread can reference content in this way.
68 This is to avoid a range of confusing user experience scenarios, like having parts of threads duplicated across
69 various inline comment markers.
70
71 ### Comment Archiving
72
73 With the addition of content comments, I thought that comments would now be much more useful
74 for creating todo-like actions regarding the page content.
75 In such usage, it would really help to have a way to close-off and hide comments.
76 While you could delete comments, from a user perspective that seems quite dangerous, and in 
77 most scenarios you'd want to retain that context that led to changes.
78
79 To support these kind of scenarios, this release adds the ability to archive comments.
80 This is an action which shows on a comment like the existing options:
81
82 TODO - Image of archive option, with comment tabs showing
83
84 In the comments area, you'll now see tabs for jumping between active and archived threads.
85 Inline comment markers, introduced above, will show based upon which tab is active.
86 Within the page editor, archived threads can be accessed via a dropdown below active 
87 comment threads.
88
89 TODO - Image in editor sidebar
90
91 Only the top-most comments have the ability to be archived or unarchived,
92 to keep management thread-based otherwise you will have parts of threads
93 split between tabs.
94 In terms of permissions, the ability to archive is currently just based
95 on the ability to edit or delete the comment.
96
97 ### AVIF Image Support
98
99 BookStack will now support the use of AVIF images for all 
100 places you can upload images!
101 AVIF, which is the image version of the AV1 video standard,
102 is a modern image format which can achieve great compression 
103 for smaller image file sizes at equivilent quility.
104 It's also quite featureful, with support for transparency, animation,
105 HDR, and lossless compression.
106
107 The only area which won't currently support AVIF images is 
108 our default PDF export option, but hopefully support in this
109 area will be here soon.
110
111 For an in-depth look & comparison of AVIF I'd strongly recommend reading
112 this blog post by Jake Archibald: https://jakearchibald.com/2020/avif-has-landed/
113
114 ### OIDC User Avatar Support
115
116 From this release it's now possible for instances using OIDC
117 authentication to assign user avatar images from the data
118 given from the OIDC system.
119 This can be enabled through the following `.env` option:
120
121 ```bash
122 OIDC_FETCH_AVATAR=true
123 ```
124
125 **Warning:** This should only be enabled where you trust the connected
126 OIDC system to provide safe URLs for user images otherwise this can 
127 present a server-side-fetching risk.
128
129 With this option enabled, upon login, BookStack will use the `picture` claim provided
130 in OIDC user data, and fetch that image and save that as the user's avatar.
131 This will only be done if the user does not already have a user avatar image set.
132
133 A big thanks to [@rubentalstra](https://github.com/BookStackApp/BookStack/pull/5429)
134 for contributing this feature.
135
136 ### System Info API Endpoint
137
138 A new api endpoint has been added in this release which provides some high-level
139 details of the system. The endpoint can be accessed at `GET /api/system` and
140 returns data like that shown below:
141
142 ```json
143 {
144   "version": "v25.02.4",
145   "instance_id": "1234abcd-cc12-7808-af0a-264cb0cbd611",
146   "app_name": "My BookStack Instance",
147   "app_logo": "https://docs.example.com/uploads/images/system/2025-05/cat-icon.png",
148   "base_url": "https://docs.example.com"
149 }
150 ```
151
152 This can be useful in integration scenarios where you need specific details
153 to make decisions or display elsewhere.
154
155 ### New WYSIWYG Editor Updates, Now in Beta
156
157 The new WYSIWYG editor, [introduced back in v24.10](/blog/bookstack-release-v24-10/#new-alpha-wysiwyg-editor-option),
158 is moving from Alpha to Beta status in this release!
159 We've now been through many patch and feature releases where fixes and
160 improvements have been made to this editor, so I'm happy to move it
161 a little further along the journey to becoming the default editor option.
162
163 During this stage I'll open up feedback to customization requirements while
164 also maybe switching over the comment WYSIWYG editor to use the same new framework
165 we've built here.
166
167 A big thanks to everyone that has [provided feedback](https://github.com/BookStackApp/BookStack/issues/5245)
168 during this alpha stage. I've started a new fresh thread to gain feedback for this beta stage:
169
170 TODO - Insert new thread link
171
172 This release does bring a range of fixes and improvements itself:
173
174 - Updated dropdown behaviour to align with existing editor.
175 - Made it easier to escape above/below tables, code blocks and diagrams.
176 - Added auto-conversion of links to images on paste to align with existing editor behaviour.
177 - Fixed buggy diagram selection and keyboard interaction.
178 - Fixed table column size changes not showing until after page save.
179
180 ### Translations
181
182 Once again a massive thanks to all the below precise prose professionals who have 
183 kindly contributed translations since our last feature release:
184
185 - Name - *Lang - 2633 words*
186
187 *Word counts are those tracked by Crowdin, indicating original EN words translated.*
188
189 ### Next Steps
190
191 As referenced above, with the new editor moving to beta I may look to update the comment
192 editor to this new editor, to get it used in more production scenarios, yet in a limited scope.
193 Regardless, I'm sure more fixes and improvements will be made in this area.
194
195 In July we'll see the 10 year anniversary since the start of the project.
196 I was aiming to build one of the very complicated & highly requested features in our backlog
197 for this event, but I burnt out on that after various attempts in this release cycle,
198 so I'm not keen on doing that again. 
199 I'm not one for a lot of fanfare, but I'm going to try and think about some different things
200 we can do to celebrate this milestone.
201
202 ### Full List of Changes
203
204 **Released in v25.05**
205
206 * Added support for comments to reference page sections. ([#5584](https://github.com/BookStackApp/BookStack/pull/5584), [#1265](https://github.com/BookStackApp/BookStack/issues/1265))
207 * Added AVIF image support. ([#5625](https://github.com/BookStackApp/BookStack/pull/5625), [#5474](https://github.com/BookStackApp/BookStack/issues/5474))
208 * Added new system info API endpoint. ([#5607](https://github.com/BookStackApp/BookStack/pull/5607), [#5603](https://github.com/BookStackApp/BookStack/issues/5603))
209 * Added user avatar image fetching for OIDC authentication. Thanks to [@rubentalstra](https://github.com/BookStackApp/BookStack/pull/5429). ([#5626](https://github.com/BookStackApp/BookStack/pull/5626), [#5429](https://github.com/BookStackApp/BookStack/pull/5429), [#4271](https://github.com/BookStackApp/BookStack/issues/4271))
210 * Updated new WYSIWYG editor with further fixes. ([#5627](https://github.com/BookStackApp/BookStack/pull/5627))
211 * Updated page edit redirect to view if permission failed on edit. ([#5568](https://github.com/BookStackApp/BookStack/issues/5568))
212 * Updated translations with latest Crowdin changes. ([#5622](https://github.com/BookStackApp/BookStack/pull/5622))
213 * Update codebase and packages to address php 8.4 depreactions. ([#5358](https://github.com/BookStackApp/BookStack/issues/5358))
214
215 **Released in v24.02.5**
216
217 * Fixed incorrect image directory permissions. ([#5609](https://github.com/BookStackApp/BookStack/pull/5609), [#5605](https://github.com/BookStackApp/BookStack/issues/5605))
218 * Updated translations with latest Crowdin changes. ([#5608](https://github.com/BookStackApp/BookStack/pull/5608))
219 * Updated PHP packages.
220 * Updated system CLI:
221   - Fixed handling of database credentials with escaped special characters.
222   - Updated download-vendor command with extra clean-up handling.
223
224
225 **Released in v24.02.4**
226
227 * Updated PHP dependency package versions to fix compatibility issue on systems with recent libxml versions (eg. Arch Linux).
228
229 **Released in v24.02.3**
230
231 * Updated image file permission error handling for images to log instead of fail. ([#5601](https://github.com/BookStackApp/BookStack/pull/5601), [#5269](https://github.com/BookStackApp/BookStack/issues/5269))
232 * Fixed style issues in exports due to CSS variables being ignored. ([#5576](https://github.com/BookStackApp/BookStack/issues/5576))
233 * Updated translations with latest Crowdin changes. ([#5566](https://github.com/BookStackApp/BookStack/pull/5566))
234 * Updated PHP dependency package versions.
235
236 **Released in v24.02.2**
237
238
239 * Updated name sort rule handling to consider accented characters. Thanks to [@bernardo-campos](https://github.com/BookStackApp/BookStack/pull/5550). ([#5550](https://github.com/BookStackApp/BookStack/pull/5550), [#5542](https://github.com/BookStackApp/BookStack/issues/5542))
240 * Updated translations with latest Crowdin changes. ([#5537](https://github.com/BookStackApp/BookStack/pull/5537))
241 * Updated PHP dependency package versions.
242 * Fixed a range of issues for the new WYSIWYG editor: ([#5558](https://github.com/BookStackApp/BookStack/pull/5558))
243   - Fixed content saving issues, specifically on save shortcut usage.
244   - Fixed list conversion & parsing which was mishandling tasks lists.
245   - Fixed a range of list selection and nesting scenarios.
246   - Updated keyboard navigation to be more reliable around images & media embeds.
247 * Fixed comment times not being shown. ([#5555](https://github.com/BookStackApp/BookStack/issues/5555))
248
249 **Released in v24.02.1**
250
251 * Added ipv6 database host address support. ([#5464](https://github.com/BookStackApp/BookStack/issues/5464))
252 * Updated translations with latest Crowdin changes. ([#5505](https://github.com/BookStackApp/BookStack/pull/5505))
253 * Updated revisions list to hide changes link for oldest revision. ([#5454](https://github.com/BookStackApp/BookStack/issues/5454))
254 * Updated system CLI:
255   * Added new `download-vendor` command.
256   * Updated restore command to take environment variables into account. ([#5489](https://github.com/BookStackApp/BookStack/issues/5489))
257   * Updated backup command to use mariadb-dump where available. ([#5373](https://github.com/BookStackApp/BookStack/issues/5373))
258   * Updated update command to check, warn and exit early if the CLI is making changes to itself. ([#5335](https://github.com/BookStackApp/BookStack/issues/5335))
259   * Updated MySQL handling to use option files to pass details to CLI executions.
260   * Updated MySQL handling to consider common xampp directory.
261 * Updated PHP dependencies.
262
263 ----
264
265 <span style="font-size: 0.8em;opacity:0.9;">Header Image Credits: <span>Photo by <a href="https://www.flickr.com/photos/karen_roe/8247172011">Karen Roe (CC-BY-2)</a> - Image Modified</span></span>