]> BookStack Code Mirror - website/blob - content/blog/2025/bookstack-release-v25-05.md
Checked v25.05 changes/post, added attribution
[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 abilities 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 TODO - Video
20 <!-- {{<pt iUZWrk4oxLYc2dFsAPjDyY>}} -->
21
22 ### Content Comments
23
24 In a platform like BookStack it's quite likely that page comments will be referring
25 to a specific part of the page content, which you'd previously need to describe
26 as part of the comment text.
27 With this release, it's now possible to directly & visually reference a part of the 
28 page content in a comment.
29 This is achieved via a new button in the content popover, which is shown when part of the page text
30 is selected:
31
32 ![View of the floating popover accessed when viewing a page, with the mouse cursor hovering above a comment icon](/images/2025/05/inline_comment_action.png)
33
34 Clicking this will start a new comment with a reference to the selected area & text range.
35 When viewing the page, this will then show as a highlight and marker for that content:
36
37
38 ![View of some page content, with a single word highlighted in a pale blue, with a floating comment bubble icon in the top right of the highlighted region](/images/2025/05/inline_comment_marker.png)
39
40 Clicking the comment marker will then open up that comment thread:
41
42 ![View of some page content, with a single word highlighted in a pale blue, with an active comment thread floating below this highlight zone](/images/2025/05/inline_comment_display.png)
43
44 From there you can close or read the thread within this inline display, or click the "Jump to thread"
45 action to jump to the full thread in the comments area, where you can edit or reply as needed.
46
47 When viewing the comments below the page, those which reference content will have an indicator to reflect their connection
48 to specific content. This may show as outdated if the referenced content has changed since the comment
49 was made. Clicking on this indicator will jump the user to the relevant section on the page.
50 If the referenced section no longer exists at all, this indicator will become orange and can't be clicked.
51
52 ![View of three comments at the bottom of the page, with each having content starting with a "Reference" badge. The first is blue. The second also has the text "Outdated" in this badge. The third also shows "Outdated" but is orange](/images/2025/05/comment_reference_indicators.png)
53
54 Some of these features are also supported in the page editor.
55 When using the new WYSIWYG editor, opening the comments sidebar will show the inline comments 
56 (where possible) and the reference indicators will be active as explained above.
57 This isn't supported in the markdown or the old default WYSIWYG editor; there the 
58 indicators will instead remain gray to represent being inactive.
59
60 ![BookStack page editor showing the comments sidebar open, and comment bubbles within the page content, with open open showing a discussion floating above page content](/images/2025/05/inline_comments_in_editor.png)
61
62 One thing to note is that only the starting comment of a thread can reference content in this way.
63 This is to avoid a range of confusing user experience scenarios, like having parts of threads duplicated across
64 various inline comment markers.
65
66 ### Comment Archiving
67
68 With the addition of content comments, I thought that comments would now be much more useful
69 for creating todo-like actions regarding the page content.
70 In such usage, it would really help to have a way to close-off and hide comments.
71 While you could delete comments, from a user perspective that seems quite dangerous, and in 
72 most scenarios you'd want to retain that context that led to changes.
73
74 To support these kind of scenarios, this release adds the ability to archive comments.
75 This is an action which shows on a comment like the existing options:
76
77 ![View the page comments in BookStack, with the comments under two tabs which have the labels "1 Comment Thread" and "2 Archived". A mouse cursor hovers over an "Archive" action on the first visible comment](/images/2025/05/archived_comments.png)
78
79 In the comments area, you'll now see tabs for jumping between active and archived threads.
80 Inline comment markers, introduced above, will show based upon which tab is active.
81 Within the page editor, archived threads can be accessed via a dropdown below active 
82 comment threads.
83
84 ![View of comment sidebar in editor with a "Archived Threads" dropdown below existing comments](/images/2025/05/archived_comments_in_editor.png)
85
86 Only the top-most comments have the ability to be archived or unarchived,
87 to keep management thread-based otherwise you will have parts of threads
88 split between tabs.
89 In terms of permissions, the ability to archive is currently just based
90 on the ability to edit or delete the comment.
91
92 ### AVIF Image Support
93
94 BookStack will now support the use of AVIF images for all 
95 places you can upload images!
96 AVIF, which is the image version of the AV1 video standard,
97 is a modern image format which can achieve great compression 
98 for smaller image file sizes at equivalent quality.
99 It's also quite featureful, with support for transparency, animation,
100 HDR, and lossless compression.
101
102 The only area which won't currently support AVIF images is 
103 our default PDF export option, but hopefully support in this
104 area will be here soon.
105
106 For an in-depth look & comparison of AVIF I'd strongly recommend reading
107 this blog post by Jake Archibald: https://jakearchibald.com/2020/avif-has-landed/
108
109 ### OIDC User Avatar Support
110
111 From this release it's now possible for instances using OIDC
112 authentication to assign user avatar images from the data
113 given from the OIDC system.
114 This can be enabled through the following `.env` option:
115
116 ```bash
117 OIDC_FETCH_AVATAR=true
118 ```
119
120 **Warning:** This should only be enabled where you trust the connected
121 OIDC system to provide safe URLs for user images otherwise this can 
122 present a server-side-fetching risk.
123
124 With this option enabled, upon login, BookStack will use the `picture` claim provided
125 in OIDC user data, and fetch that image to save it as the user's avatar.
126 This will only be done if the user does not already have a user avatar image set.
127
128 A big thanks to [@rubentalstra](https://github.com/BookStackApp/BookStack/pull/5429)
129 for contributing this feature.
130
131 ### System Info API Endpoint
132
133 A new api endpoint has been added in this release which provides some high-level
134 details of the system. The endpoint can be accessed at `GET /api/system` and
135 returns data like that shown below:
136
137 ```json
138 {
139   "version": "v25.02.4",
140   "instance_id": "1234abcd-cc12-7808-af0a-264cb0cbd611",
141   "app_name": "My BookStack Instance",
142   "app_logo": "https://docs.example.com/uploads/images/system/2025-05/cat-icon.png",
143   "base_url": "https://docs.example.com"
144 }
145 ```
146
147 This can be useful in integration scenarios where you need specific details
148 to make decisions or display elsewhere.
149
150 ### New WYSIWYG Editor Updates, Now in Beta
151
152 The new WYSIWYG editor, [introduced back in v24.10](/blog/bookstack-release-v24-10/#new-alpha-wysiwyg-editor-option),
153 is moving from Alpha to Beta status in this release!
154 We've now been through many patch and feature releases where fixes and
155 improvements have been made to this editor, so I'm happy to move it
156 a little further along the journey to becoming the default editor option.
157
158 During this stage I'll open up feedback to customization requirements while
159 also maybe switching over the comment WYSIWYG editor to use the same new framework
160 we've built here.
161
162 A big thanks to everyone that has [provided feedback](https://github.com/BookStackApp/BookStack/issues/5245)
163 during this alpha stage. I've started a [new fresh thread here](https://github.com/BookStackApp/BookStack/issues/5631) to gain feedback for this beta stage.
164
165 This release does bring a range of fixes and improvements itself:
166
167 - Updated dropdown behaviour to align with existing editor.
168 - Made it easier to escape above/below tables, code blocks and diagrams.
169 - Added auto-conversion of links to images on paste to align with existing editor behaviour.
170 - Fixed buggy diagram selection and keyboard interaction.
171 - Fixed table column size changes not showing until after page save.
172 - Fixes table selection/navigation issues when a caption is present or when changes are made to the table.
173
174 ### Translations
175
176 Once again a massive thanks to all the below precise prose professionals who have 
177 kindly contributed translations since our last feature release:
178
179 - mabdullah - *Arabic - 3862 words*
180 - Leonardo Mario Martinez (leonardo.m.martinez) - *Spanish, Argentina - 1678 words*
181 - m4z - *German Informal; German - 1116 words*
182 - toras9000 - *Japanese - 766 words*
183 - Qxlkdr - *Swedish - 757 words*
184 - Martins Pilsetnieks (pilsetnieks) - *Latvian - 682 words*
185 - Hari (muhhari) - *Indonesian - 597 words*
186 - Vitaliy (gviabcua) - *Ukrainian - 541 words*
187 - Jeff Huang (s8321414) - *Chinese Traditional - 506 words*
188 - cbridi - *Portuguese, Brazilian - 363 words*
189 - 仙君御 (xjy) - *Chinese Simplified - 336 words*
190 - Skrabák Csaba (kekcsi) - *Hungarian - 308 words*
191 - matthias4217 - *French - 300 words*
192 - Evert Meulie (Evert) - *Norwegian Bokmal - 263 words*
193 - neodvisnost - *Slovenian - 167 words*
194 - Jasper Backer (jasperb) - *Dutch - 124 words*
195 - Alexandar Cavdarovski (ace.200112) - *Swedish - 86 words*
196 - Ilya Shaulov (ishaulov) - *Russian - 85 words*
197 - Soubi Agatsuma (bisouya) - *Hebrew - 81 words*
198 - Igor V Belousov (biv) - *Russian - 71 words*
199 - Indrek Haav (IndrekHaav) - *Estonian - 57 words*
200 - 周盛道 (zhoushengdao) - *Chinese Simplified - 56 words*
201 - 구닥다리TV (yjj8353) - *Korean - 54 words*
202 - Konstantin Bobkov (b.konstantv) - *Russian - 46 words*
203 - scureza - *Italian - 40 words*
204 - Onur Oskay (o.oskay) - *Turkish - 38 words*
205 - Sébastien Merveille (SebastienMerv) - *French - 37 words*
206 - Honza Nagy (honza.nagy) - *Czech - 32 words*
207 - Maxim Kouznetsov (masya.work) - *Hebrew - 15 words*
208 - nutsflag - *French - 13 words*
209 - Guttorm Hveem (guttormhveem) - *Norwegian Nynorsk - 9 words*
210 - Ruben Sutter (rubensutter) - *German - 2 words*
211 - Michał Lipok (mLipok) - *Polish - 2 words*
212 - jellium - *French - 2 words*
213
214 *Word counts are those tracked by Crowdin, indicating original EN words translated.*
215
216 ### Next Steps
217
218 As referenced above, with the new editor moving to beta I may look to update the comment
219 editor to this new implementation, to get it used in more production scenarios, yet in a limited scope.
220 Regardless, I'm sure more fixes and improvements will be made in this area.
221
222 In July we'll see the 10 year anniversary since the start of the project.
223 I was aiming to build one of the very complicated & highly requested features in our backlog
224 for this event, but I burnt out on that after various attempts in this release cycle,
225 so I'm not keen on doing that again. 
226 I'm not one for a lot of fanfare, but I'm going to try and think about some different things
227 we can do to celebrate this milestone.
228
229 ### Full List of Changes
230
231 **Released in v25.05**
232
233 * Added support for comments to reference page sections. ([#5584](https://github.com/BookStackApp/BookStack/pull/5584), [#1265](https://github.com/BookStackApp/BookStack/issues/1265))
234 * Added comment archive support. ([#5584](https://github.com/BookStackApp/BookStack/pull/5584))
235 * Added AVIF image support. ([#5625](https://github.com/BookStackApp/BookStack/pull/5625), [#5474](https://github.com/BookStackApp/BookStack/issues/5474))
236 * Added new system info API endpoint. ([#5607](https://github.com/BookStackApp/BookStack/pull/5607), [#5603](https://github.com/BookStackApp/BookStack/issues/5603))
237 * 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))
238 * Updated new WYSIWYG editor with further fixes. ([#5627](https://github.com/BookStackApp/BookStack/pull/5627))
239 * Updated page-edit redirect to page-view if permission failed on edit. ([#5568](https://github.com/BookStackApp/BookStack/issues/5568))
240 * Updated translations with latest Crowdin changes. ([#5622](https://github.com/BookStackApp/BookStack/pull/5622))
241 * Update codebase and packages to address php 8.4 depreactions. ([#5358](https://github.com/BookStackApp/BookStack/issues/5358))
242
243 **Released in v24.02.5**
244
245 * Fixed incorrect image directory permissions. ([#5609](https://github.com/BookStackApp/BookStack/pull/5609), [#5605](https://github.com/BookStackApp/BookStack/issues/5605))
246 * Updated translations with latest Crowdin changes. ([#5608](https://github.com/BookStackApp/BookStack/pull/5608))
247 * Updated PHP packages.
248 * Updated system CLI:
249   - Fixed handling of database credentials with escaped special characters.
250   - Updated download-vendor command with extra clean-up handling.
251
252
253 **Released in v24.02.4**
254
255 * Updated PHP dependency package versions to fix compatibility issue on systems with recent libxml versions (eg. Arch Linux).
256
257 **Released in v24.02.3**
258
259 * 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))
260 * Fixed style issues in exports due to CSS variables being ignored. ([#5576](https://github.com/BookStackApp/BookStack/issues/5576))
261 * Updated translations with latest Crowdin changes. ([#5566](https://github.com/BookStackApp/BookStack/pull/5566))
262 * Updated PHP dependency package versions.
263
264 **Released in v24.02.2**
265
266
267 * 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))
268 * Updated translations with latest Crowdin changes. ([#5537](https://github.com/BookStackApp/BookStack/pull/5537))
269 * Updated PHP dependency package versions.
270 * Fixed a range of issues for the new WYSIWYG editor: ([#5558](https://github.com/BookStackApp/BookStack/pull/5558))
271   - Fixed content saving issues, specifically on save shortcut usage.
272   - Fixed list conversion & parsing which was mishandling tasks lists.
273   - Fixed a range of list selection and nesting scenarios.
274   - Updated keyboard navigation to be more reliable around images & media embeds.
275 * Fixed comment times not being shown. ([#5555](https://github.com/BookStackApp/BookStack/issues/5555))
276
277 **Released in v24.02.1**
278
279 * Added ipv6 database host address support. ([#5464](https://github.com/BookStackApp/BookStack/issues/5464))
280 * Updated translations with latest Crowdin changes. ([#5505](https://github.com/BookStackApp/BookStack/pull/5505))
281 * Updated revisions list to hide changes link for oldest revision. ([#5454](https://github.com/BookStackApp/BookStack/issues/5454))
282 * Updated system CLI:
283   * Added new `download-vendor` command.
284   * Updated restore command to take environment variables into account. ([#5489](https://github.com/BookStackApp/BookStack/issues/5489))
285   * Updated backup command to use mariadb-dump where available. ([#5373](https://github.com/BookStackApp/BookStack/issues/5373))
286   * 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))
287   * Updated MySQL handling to use option files to pass details to CLI executions.
288   * Updated MySQL handling to consider common xampp directory.
289 * Updated PHP dependencies.
290
291 ----
292
293 <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>