]> BookStack Code Mirror - website/commitdiff
Continued blogpost
authorDan Brown <redacted>
Sat, 26 Jul 2025 14:19:31 +0000 (15:19 +0100)
committerDan Brown <redacted>
Sat, 26 Jul 2025 14:19:31 +0000 (15:19 +0100)
content/blog/2025/bookstack-release-v25-07.md

index 8fa53f47f3fb6adaa95b1a166b05442e62f006f2..985e792e3fa1d5b0ecbe24e09a8be2f3e31c5b55 100644 (file)
@@ -22,35 +22,123 @@ TODO - Video
 
 ### Markdown Plaintext Input
 
-TODO
+The markdown text edit area has made use of [CodeMirror](https://codemirror.net/) to provide code-based features
+like markdown syntax highlighting, line numbering and some autocomplete features, in addition to providing a nice
+interface to work with from a development point of view.
+Unfortunately though the use of a smarter editor like this could introduce compatibility issues with certain browser-level features
+such as spell-checking, searching and other extensions.
+To help avoid these issues, there's now an option in the markdown editor to use a plaintext text-area instead:
+
+TODO - Image of option with edit behind it
+
+While I originally thought this would be a simple input swap on option change, in the end I spent a lot of extra time to match the existing functionality we have for the CodeMirror input. This meant supporting the same range of editor shortcuts, drag and drop features, scroll syncing and editor action buttons.
 
 ### New WYSIWYG Editor for Comments & Descriptions
 
-TODO
+In the last release the new WYSIWYG editor [moved into Beta](https://www.bookstackapp.com/blog/bookstack-release-v25-05/#new-wysiwyg-editor-updates-now-in-beta).
+As part of its continued slow roll-out this release updates book/chapter/shelf description boxes, along with comments, to use the new WYSIWYG editor:
+
+TODO - Image of description/comment editor
+
+This is a cut-down version relative to its use for pages, but this should get the fundamental new editor code used & tested in a lot more cases to help test things further before it eventually becomes the default for pages.
 
 ### New WYSIWYG Editor Improvements
 
-TODO
+On the topic of the new WYSIWYG editor, it's received a whole load of improvements and fixes since the last release:
+
+- Added toolbar for media elements for easier menu access.
+- Added ability to insert new paragraph on click under certain last hard-to-escape blocks (tables, drawings etc...).
+- Updated media embed code field to show existing embed code for direct editing.
+- Updated media resize handling to be more reliable and to retain focus after resize.
+- Updated table resize handles to be more efficient, and prevented them wondering far away from tables so often.
+- Updated source code popup with larger input.
+- Updated source code generation with newlines between top-level blocks.
+- Fixed buggy media selection scenarios.
+- Fixed media form "src" field not working when video is using source elements.
+- Fixed table resize handles overlapping table captions.
+- Fixed text formatting being inconsistent on new paragraphs.
+- Fixed tiny image resize square on image insert.
+- Fixed text highlight action & updated label.
+- Fixed unstable table cell background colours.
+- Fixed incorrect header levels used via format shortcuts.
+- Fixed UI menu not reflecting block format changes.
+- Fixed URLs not allowing any protocol as per old editor.
+
+A big thanks again to all those that have provided valuable feedback via [our beta discussion thread](https://github.com/BookStackApp/BookStack/issues/5631), this is essential for progressing the editor to a stable position.
+I continue to welcome further feedback in that thread regarding any issues found.
 
 ### Changelog Input Changes
 
-TODO
+The page changelog input has been improved upon to provide a little extra editing breathing room,
+since the single line input could get a little cramped, while also showing a character counter to help
+avoid scenarios where text would be unexpectedly cut down on save.
+
+TODO - Image of changelog input
+
+Thanks to [@shresthkapoor7](https://github.com/BookStackApp/BookStack/pull/5663) for providing this enhancement.
 
 ### ZIP Import/Export API Endpoints
 
-TODO
+Back [in v24.12 we introduced](https://www.bookstackapp.com/blog/bookstack-release-v24-12/#new-importable-export-format) the importable ZIP export format.
+Now that this has had some use without report of significant issues, it seemed a sensible time to now roll this out to BookStack's REST API. 
+
+There's new `export-zip` endpoints for books, chapters, and pages in addition to a range of endpoints for listing, showing, uploading, and running imports.
+
+TODO - Image of endpoints?
 
 ### Parent Tag Classes
 
-TODO
+For a while tag classes have been available to provide an easy method of applying customizations.
+These are simple CSS classes added to the `<body>` of the HTML page so that customization can perform tag-dependant
+style or JavaScript code customizations depending on what tags are applied.
+These have worked well for pages but it was hard to use them for wider-scoped customizations, like entire book/chapter customizations for example.
+
+In this release we now include classes for parent chapters/books. These are distinct from standard tag classes since these will also include the name of the parent item type. As an example, A tag of name `Categorisation` with a value of `Important` set on a book will result on the following classes being set on the `<body>` when viewing child chapters/pages:
+
+- `book-tag-pair-categorisation-important`
+- `book-tag-name-categorisation`
+- `book-tag-value-important`
+
+You could then use these to apply customizations to an entire book. For example, if you then wanted this book-level tag to add a banner on the book and all main child chapter/page views, you could use the following "Custom HTML Head Content":
+
+```html
+<style>
+  .book-tag-pair-categorisation-important main:before,
+  .tag-pair-categorisation-important main:before {
+    content: 'This content is marked important!';
+    display: block;
+    padding: .25rem 1rem;
+    background-color: orange;
+    margin-bottom: 1rem;
+    color: #FFF;
+    font-size: 12px;
+    border-radius: 4px;
+    font-weight: bold;
+  }
+</style>
+```
 
 ### Multi-Column Layout Refinements
 
-TODO
+In this release cycle I spent a little time refining the sidebar behaviour in the main
+three-column layout used for most views.
+Sometimes, especially at tablet & half-desktop sizes, you'd see sidebar content be cut with harsh edges.
+Spacing has now been altered to make this much more infrequent while also making better use of space at those smaller
+screen sizes.
+
+I've also added a fade to the sidebars when content is scrolled out of view to provide an indication that there's 
+content there to uncover:
+
+TODO - Image of fade
 
 ### Updated Permission Generation Handling
 
-TODO
+Upon certain action, such as item creation or permission change, BookStack will recalculate & store 
+view access rights. In some cases, where changes were made in parallel, this could fail leading to
+content being hidden from everyone until permissions we regenerated.
+
+For this release careful consideration has been applied to these actions, wrapping them at a higher level
+in transactions, in a way that allows parallel changes to not fail, instead allowing each change to block other changes when needed.
 
 ### Translations
 
@@ -64,6 +152,8 @@ TODO - Intro, new languages in point releases?
 
 TODO
 
+WYSIWYG Editor developer API
+
 ### Full List of Changes
 
 **Released in v25.07**
@@ -78,14 +168,6 @@ TODO
 * Updated translations with latest Crowdin changes. ([#5696](https://github.com/BookStackApp/BookStack/pull/5696))
 * Updated many actions to better handle parallel permission generation. ([#5689](https://github.com/BookStackApp/BookStack/pull/5689), [#4838](https://github.com/BookStackApp/BookStack/issues/4838))
 * Updated new WYSIWYG editor with improvements & fixes. ([#5731](https://github.com/BookStackApp/BookStack/pull/5731))
-  - Fixed text highlight action & updated label.
-  - Fixed unstable table cell background colors.
-  - Fixed incorrect header levels used via format shortcuts.
-  - Fixed UI menu not reflecting block format changes.
-  - Fixed URLs not allowing any protocol as per old editor.
-  - Updated source code popup with larger input.
-  - Updated source code generation with newlines between top-level blocks.
-  - Added ability to insert new paragraph on click under certain last hard-to-escape blocks (tables, drawings etc...).
 
 **Released in v25.05.2**
 
@@ -98,16 +180,7 @@ TODO
 
 **Released in v25.05.1**
 
-* Updated new WYSIWYG editor with a range of fixes: ([#5653](https://github.com/BookStackApp/BookStack/pull/5653))
-  - Added toolbar for media elements for easier menu access.
-  - Updated media embed code field to show existing embed code for direct editing.
-  - Updated media resize handling to be more reliable and to retain focus after resize.
-  - Updated table resize handles to be more efficient, and prevented them wondering far away from tables so often.
-  - Fixed buggy media selection scenarios.
-  - Fixed media form "src" field not working when video is using source elements.
-  - Fixed table resize handles overlapping table captions.
-  - Fixed text formatting being inconsistent on new paragraphs.
-  - Fixed tiny image resize square on image insert.
+* Updated new WYSIWYG editor with a range of fixes. ([#5653](https://github.com/BookStackApp/BookStack/pull/5653))
 * Fixed comment updates showing incorrect notification text. ([#5642](https://github.com/BookStackApp/BookStack/issues/5642))
 * Fixed search system ignoring words adjacent to non-breaking spaces. ([#5640](https://github.com/BookStackApp/BookStack/issues/5640))
 * Updated translations with latest Crowdin changes. ([#5637](https://github.com/BookStackApp/BookStack/pull/5637))