]> BookStack Code Mirror - website/blob - content/blog/beta-release-v0-29-0.md
Update filesystem-permissions.md
[website] / content / blog / beta-release-v0-29-0.md
1 +++
2 categories = ["Releases"]
3 tags = ["Releases"]
4 title = "Beta Release v0.29.0"
5 date = 2020-04-13T15:30:00Z
6 author = "Dan Brown"
7 image = "/images/blog-cover-images/easter-victor-larracuente.jpg"
8 description = "This Easter BookStack release focuses on bringing a range user-experience improvements, with features such as dark mode and improved RTL textsupport, in addition to a bunch of fixes and enhancements."
9 slug = "beta-release-v0-29-0"
10 draft = false
11 +++
12
13 This Easter BookStack release welcomes a range of user-experience improvements, with 
14 features such as dark mode and improved right-to-left text support, in addition to a bunch
15 of fixes and enhancements. 
16
17 * [Update instructions](https://www.bookstackapp.com/docs/admin/updates)
18 * [GitHub release page](https://github.com/BookStackApp/BookStack/releases/tag/v0.29.0)
19
20
21 ### Dark Mode
22
23 BookStack now has a built-in dark mode. Here's a comparison of the same content shown in both dark and light mode:
24
25 [![Dark Mode](/images/2020/04/bookstack-dark-mode.png)](/images/2020/04/bookstack-dark-mode.png)
26
27 [Click to open larger view](/images/2020/04/bookstack-dark-mode.png).
28
29 The dark mode covers all areas of the system including both the WYSIWYG and markdown editors. 
30 Where possible, page content such as tables & code blocks will react and change to be suitable dark alternatives.
31 Vibrant theme-color elements, such as the header bar, will be automatically dimmed and de-saturated 
32 so they don't stand-out or remain overly-bright on an otherwise dark page.
33
34 The option is user-selectable, from either the home-screen on via the top-right profile menu:
35
36
37 ![Dark Mode Toggle](/images/2020/04/bookstack-dark-mode-toggle.png)
38
39 This can be toggled at any point and the current preference will be saved to the user.
40 For non-logged-in users, their preference will be saved to their browsing session.
41
42 A massive thanks to [@domainzero on GitHub](https://github.com/domainzero) for tiding-over the BookStack
43 community with a well-supported dark theme for the last few years.
44
45
46 ### Custom Draw.io Option
47
48 Previously in BookStack the URL for draw.io ([now diagrams.net](https://www.diagrams.net/blog/move-diagrams-net)) 
49 was hard-coded within the BookStack code. This has now been exposed and can be customised as an `.env` option
50 meaning you can tweak the embed behaviour or even use your own [self-hosted draw.io instance](https://github.com/jgraph/drawio).
51
52 [Details for using this option can be found here](/docs/admin/other-config/#custom-drawio-url).
53
54 ### Shelf Grid View
55
56 When viewing a single shelf, it's now possible to toggle between grid & list view
57 for the books within:
58
59 ![Shelf Grid View](/images/2020/04/bookstack-shelf-grid.png)
60
61 This aligns the shelf page with the view options available on the "Books" page.
62 A big thanks to [@philjak](https://github.com/BookStackApp/BookStack/pull/1755) for contributing 
63 this feature.
64
65 ### List of Shelves for Books
66
67 Previously in BookStack it was not easy to see the shelves a book is assigned to. 
68 In this release, A list of assigned shelves can now be seen when viewing a book:
69
70 ![Book shelves list](/images/2020/04/bookstack-book-shelves-list.png)
71
72 Big thanks to [@cw1998](https://github.com/BookStackApp/BookStack/pull/1688) for contributing
73 this feature to BookStack.
74
75
76 ### API Updates
77
78 The API has been expanded upon with the ability to perform CRUD operations on shelves.
79 In addition, books have received endpoints for exporting their contents as HTML, PDF or plain-text.
80 You'll be able to find details of these when accessing the [API docs in your instance](/docs/admin/hacking-bookstack/#bookstack-api), after updating.
81
82 ![API Endpoint Updates](/images/2020/04/bookstack-api-endpoints.png)
83
84 ### Instance URL Update Command
85
86 Since BookStack hard-codes system URL's in the database, a change in the domain 
87 used for your instance meant that some manual SQL commands needed to be ran to 
88 update the domain in the relevant tables & columns. In this release a command
89 has been added to make this much quicker & easier, You just run the command providing 
90 your old and new URL and all the required columns will be updated.
91
92 Here's and example of running this command:
93
94 ```bash
95 $ php artisan bookstack:update-url http://bookstack.local https://my-docs.com    
96
97  This will search for "http://bookstack.local" in your database and replace it with  "https://my-docs.com".
98 Are you sure you want to proceed? (yes/no) [no]:
99  > yes
100
101  This operation could cause issues if used incorrectly. Have you made a backup of your existing database? (yes/no) [no]:
102  > yes
103
104 Updated 0 rows in attachments->path
105 Updated 26 rows in pages->html
106 Updated 0 rows in pages->text
107 Updated 8 rows in pages->markdown
108 Updated 394 rows in images->url
109 Updated 0 rows in comments->html
110 Updated 0 rows in comments->text
111 URL update procedure complete.
112 ```
113
114 The command has been added to the [command documentation found here](/docs/admin/commands/).
115
116
117 ### Improved RTL System UI Support
118
119 For this release the core styles have been revised to work better for right-to-left (RTL) languages:
120
121 ![RTL Styling](/images/2020/04/bookstack-rtl.png)
122
123 Previously the BookStack UI would remain left-to-right (LTR), even when a RTL language was in use.
124 Setting the html to display as RTL would cause most of the views to break as the styles were defined with LTR
125 in mind. 
126
127 For v0.29, we've made heavy use of [CSS logical properties and values](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties)
128 to ensure our styles work as expected when showing in an RTL format. Although, as of writing, [the spec for logical properties is in draft](https://drafts.csswg.org/css-logical/) it is well supported amongst the modern browsers we support, albeit with a [few omissions](https://bugs.chromium.org/p/chromium/issues/detail?id=1050751).
129
130 ### Translations
131
132 Our fantastic community of translators continue to provide their great efforts as this release brings updates
133 from the below languages by the below great Crowdin & GitHub members:
134
135 * Hasan Özbey (the-turk) - *Turkish*
136 * mrjaboozy - *Slovenian*
137 * rcy - *Swedish*
138 * Ali Yasir Yılmaz (ayyilmaz) - *Turkish*
139 * m0uch0 - *Spanish*
140 * scureza - *Italian*
141 * Statium - *Russian*
142 * Biepa - *German Informal; German*
143 * Finn Wessel (19finnwessel6) - *German*
144 * nutsflag - *French*
145 * syecu - *Chinese Simplified*
146 * Rodrigo Saczuk Niz (rodrigoniz) - *Portuguese, Brazilian*
147 * Lap1t0r - *French*
148 * Thinkverse (thinkverse) - *Swedish*
149 * milesteg - *Hungarian*
150 * [@jzoy](https://github.com/BookStackApp/BookStack/pull/2023) - *Chinese*
151
152 ### Full List of Changes
153
154 * Added a user-selectable dark-mode option. ([#2022](https://github.com/BookStackApp/BookStack/pull/2022), [#1234](https://github.com/BookStackApp/BookStack/issues/1234))
155 * Added the ability to define a custom draw.io URL and therefore use a custom instance if preferred. ([#826](https://github.com/BookStackApp/BookStack/issues/826))
156 * Added grid-view support, with toggle, to the shelf view. Thanks to [@philjak](https://github.com/BookStackApp/BookStack/pull/1755). ([#1755](https://github.com/BookStackApp/BookStack/pull/1755), [#1221](https://github.com/BookStackApp/BookStack/issues/1221))
157 * Added a list of bookshelves that a book belongs when viewing a book. Thanks to [@cw1998](https://github.com/BookStackApp/BookStack/pull/1688). ([#1688](https://github.com/BookStackApp/BookStack/pull/1688), [#1598](https://github.com/BookStackApp/BookStack/issues/1598))
158 * Added a new command to update your BookStack URL in the database. ([#1225](https://github.com/BookStackApp/BookStack/issues/1225))
159 * Added shelf API endpoints. Thanks to [@osmansorkar](https://github.com/BookStackApp/BookStack/pull/1908). ([#1908](https://github.com/BookStackApp/BookStack/pull/1908))
160 * Added book-export API endpoints.
161 * Updated password reset flows to avoid indicating if a email is in use within the system. ([#2016](https://github.com/BookStackApp/BookStack/issues/2016))
162 * Updated WYSIWYG entity-link-insert to set link text to entity name, if input is empty. ([#2014](https://github.com/BookStackApp/BookStack/issues/2014))
163 * Updated styles with better RTL support through the use of CSS logical properties/values. ([#2003](https://github.com/BookStackApp/BookStack/pull/2003))
164 * Updated the name of saved drawings to not include the user's name, to prevent issues with non-standard characters. ([#1993](https://github.com/BookStackApp/BookStack/issues/1993))
165 * Removed BMP and TIFF from the list of allows image upload types since these could not be resized properly. ([#1990](https://github.com/BookStackApp/BookStack/issues/1990))
166 * Updated code-block insert to handle focus, so code blocks can be inserted smoothly via keyboard alone. ([#1972](https://github.com/BookStackApp/BookStack/issues/1972))
167 * Updated namespacing used in tests to avoid warnings on recent versions of composer. ([#1924](https://github.com/BookStackApp/BookStack/issues/1924))
168 * Updated Chinese translations. Thanks to [@jzoy](https://github.com/BookStackApp/BookStack/pull/2023). ([#2023](https://github.com/BookStackApp/BookStack/pull/2023))
169 * Updated translations for Turkish, Slovenian, Swedish, Spanish, Italian, Russian, German Informal, German, French, Chinese Simplified, Portuguese, Brazilian & Hungarian. Thanks to [Crowdin Users](https://github.com/BookStackApp/BookStack/blob/development/.github/translators.txt).
170 * Updated default .htaccess to allow Authorization header for API usage. Thanks to [@osmansorkar](https://github.com/BookStackApp/BookStack/pull/1908). ([#1908](https://github.com/BookStackApp/BookStack/pull/1908))
171 * Updated GitHub authorization library to avoid use of deprecated auth methods. ([#1879](https://github.com/BookStackApp/BookStack/issues/1879))
172 * Fixed issue where ordered list numbers could be cut-off. This was most apparent on Safari.([#1978](https://github.com/BookStackApp/BookStack/issues/1978))
173
174
175 ### Next Steps
176
177 For the next release I'll look to continue expanding the range of API endpoints. Would be nice to get the core chapter & page actions done.
178 As per my "v0.28 next steps", I'll look to align how activity is tracked. The first steps will likely be to expand the range of
179 tracked actions then expose everything within the admin area in a filterable "Audit Trail".
180
181 ----
182
183 <span style="font-size: 0.8em;opacity:0.8;">Header Image Credits: &nbsp; <a style="background-color:black;color:white;text-decoration:none;padding:4px 6px;font-family:-apple-system, BlinkMacSystemFont, &quot;San Francisco&quot;, &quot;Helvetica Neue&quot;, Helvetica, Ubuntu, Roboto, Noto, &quot;Segoe UI&quot;, Arial, sans-serif;font-size:12px;font-weight:bold;line-height:1.2;display:inline-block;border-radius:3px" href="https://unsplash.com/@victorbrd?utm_medium=referral&amp;utm_campaign=photographer-credit&amp;utm_content=creditBadge" target="_blank" rel="noopener noreferrer" title="Download free do whatever you want high-resolution photos from Victor Larracuente"><span style="display:inline-block;padding:2px 3px"><svg xmlns="http://www.w3.org/2000/svg" style="height:12px;width:auto;position:relative;vertical-align:middle;top:-2px;fill:white" viewBox="0 0 32 32"><title>unsplash-logo</title><path d="M10 9V0h12v9H10zm12 5h10v18H0V14h10v9h12v-9z"></path></svg></span><span style="display:inline-block;padding:2px 3px">Victor Larracuente</span></a></span>