It's that time again! 4 months, 14 days and 157 commits since v0.19 was released (discounting the 4 hotfix releases made to patch nasty bugs), today I'm releasing the first beta release of v0.20. This is a huge release - check out the feature summary:
- 🌜 New automatic dark mode in the default theme! Uses
prefers-color-scheme
under-the-hood - 🌈 Added theme gallery! Read more here
- ⛵ Vastly improved search engine performance, with new advanced query syntax (with even more syntax along the way)
- 🚁 Accessibility improvements - if you're a screen-reader or accessibility tool user, I want to hear from you if you think anything (big or small!) could be improved!
- 🎈 Server-side diagramming support! Allows you to call external programs like nomnoml and render fenced code blocks as an image.
Personally, I'm most proud of the optimisations to the search engine. I've successfully tested it on wikis with ~5.9M words - and while search times vary depending on your input (the new -exclude
syntax will actually speed up queries), a single work query for ~5.0M word wikis takes ~50ms O.o
Unfortunately, this does mean that the search index will need to be rebuilt under the new format - and will be slightly larger than before. To get a progress bar for this operation, go to the master settings and click the rebuild button.
Another notable change is the new 'mega-menu' style more menu:
That menu has been bothering me for a while, and thanks to the kind people on Reddit, I've now got a solution.
Note that you'll need to delete nav_links_extra
from your peppermint.json
in order for it to take effect.
Please test the theme gallery in particular. It's quite complicated under-the-hood, so I'd appreciate some extra eyes on that before I do a stable release.
Special thanks to @SeanFromIT for reporting a number of bugs which have been squashed.
If you use Pepperminty Wiki, tweet me @SBRLabs! I'd love to hear about how you're using it.
Lastly, don't forget to take a backup of your wiki before updating. While I've made every effort to squash bugs, you can never be too careful :P
--Starbeamrainbowlabs
Updating
See the instructions here.
Note that because this is a beta release, the online downloader hasn't been updated yet (that'll happen on the next stable release). Try the copy attached to this release instead, run the downloader locally, or build your own using the CLI.
Since v0.19.4-hotfix4
Added
- Added automatic dark mode to default theme using
prefers-color-scheme
- [Module API] Added new
minify_css
module API function by refactoring the page renderer - [Module API] Change
page_renderer::is_css_url()
to require an argument - Added theme gallery, which can be accessed through a link in the master settings (if the new
feature-theme-gallery
module is present)- Theme gallery URLs can be added to the
css_theme_autoupdate_url
setting - A graphical interface can be used to switch between available themes from the galleries
- No external HTTP requests will be made without consent
- Themes from galleries auto-update every week by default (adjustable/disable-able with the
css_theme_autoupdate_interval
setting)
- Theme gallery URLs can be added to the
- Added mega-menu support to the
nav_links_extra
setting - the default value for thenav_links_extra
setting has now changed (delete/rename it in yourpeppermint.json
file to get the new version)- An object can now be used to define groups of items in the more menu
- Hopefully it now looks less cluttered :P
- Headings now have an automatic id if you don't specify one (part of #141)
- Server-side diagramming support! See the
parser_ext_renderers
setting for more information on how to configure it- It hooks into external programs such as nomnoml, plantuml, and
abcm2ps
(ABC musical notation rendering) - It's generic enough to allow you to hook into any program that takes an input of some source text, and output some form of image
- It hooks into external programs such as nomnoml, plantuml, and
Fixed
- Fixed a bug in the search query performance metrics
- Fill out the statistics help text
- Added table of contents to help page
- Squashed the large blank space that appears at the bottom of the page editor page when editing long pages
- Accessibility improvements - thanks, Firefox developer tools :D (if you're a screen reader / accessibility tool user and have feedback or any better ideas, please get in touch)
- Marked the user avatar on the top navigation bar as hidden for screen readers
- Added aria label to user preferences button
- Hide site logo from screen readers
- Lists of pages that have a specific tag will now be sorted alphabetically (Unicode characters should be handled correctly too)
- Support Unicode characters when sorting. If it's a list of something, then it's now sorted correctly (e.g. includes pages, tags, etc).
- Squashed a bunch of warnings about a non-static method in the page renderer
- Fixed a warning message in the
peppermint.json
access checker - Fixed footnote rendering (thanks again, @SeanFromIT!)
Changed
- Made
build.sh
build script more robust, especially when generating the documentation. - Vastly improved search engine performance
- A new SQLite-based index format is now used, so search indexes will need to be rebuilt (migrating would probably take longer than a rebuild :-/)
- New search query syntax
- When making remote requests, Pepperminty Wiki will now correctly set the user agent string
- The server's
expose_php
setting is respected - if it's disabled, then the PHP version will not be exposed. - Pepperminty Wiki shouldn't make remote requests without you asking it to - see above and the theme gallery
- The server's
- Improved peppermint.json.compromised error message - if it's still unclear, please let me know
- Fiddled with the extra data extractor, as it seems that some people were experiencing strange issues with
stream_get_meta_data()
- [Module API] Refactored the
errorimage()
function into core, added automatic image size calculation, and multi-line support
Since v0.19.0
- Fixed page revision id incrementing if you don't have a page called
history
on your wiki (thanks @SeanFromIT!) - Improve error messages in the extra data unpacker
- Change the extra data unpacker to us
tempnam()
instead oftmpfile()
, since some people appeared to be having issues with the other approach - Squash a deprecation warning caused by a typo (thanks, @SeanFromIT!)
- Patched another crazy bug in the extra data system in the downloader
- Patched the downloader which was throwing warnings when packing downloads