Releases: sbrl/Pepperminty-Wiki
v0.20.3-hotfix3
Hey look - another wild hotfix appeared! Thanks to @SeanFromIT, 2 nasty bugs have been squashed in this release.
When merging their PR I only realised that it was merging into the hotfix branch after I'd done it, so decided to make another hotfix release 🙂
Note that this is a maintenance release that backports some urgent bugfixes to v0.20. Current development efforts are focused on v0.21. The work-in-progress changelog for v0.21 can be found here.
Have you updated to this release? Click this link to say hi!
Updating
You can update to this release simply by grabbing an updated copy of index.php
and replacing the version in your current wiki (don't forget to take backups! I make every effort to squash as many bugs as possible, but you can never be too certain). You can get an updated copy of index.php
in a number of ways:
- By downloading the
index.php
file attached to this release - Using the online downloader (always has the latest stable version)
- Using the online downloader offline
- Building your own from source
For more information on the last 2 methods, please see the documentation for more information.
v0.20.3-hotfix3
- Squash password-based warning (#182, thanks, @SeanFromIT!)
- Fix double-dot issue in uploaded files (#182, thanks, @SeanFromIT!)
v0.20.2-hotfix2
Hey there! It's another hotfix release. Someone on Reddit noted that warnings were showing up in the demo, so this release fixes that. It's because I updated PHP to 7.4 on the server the demo runs on, and the version of Parsedown shipped with v0.20 doesn't like PHP 7.4 very much.
Again, as with v0.20.1-hotfix1, this is a maintenance release that backports some urgent bugfixes to v0.20. Current development efforts are focused on v0.21. The work-in-progress changelog for v0.21 can be found here.
Updating
You can update to this release simply by grabbing an updated copy of index.php
and replacing the version in your current wiki (don't forget to take backups! I make every effort to squash as many bugs as possible, but you can never be too certain). You can get an updated copy of index.php
in a number of ways:
- By downloading the
index.php
file attached to this release - Using the online downloader (always has the latest stable version)
- Using the online downloader offline
- Building your own from source
For more information on the last 2 methods, please see the documentation for more information.
v0.20.2-hotfix2
- Update Parsedown to squash warnings in PHP 7.4
- Update the docs about how to get a copy
v0.20.1-hotfix1
Hey there! This is the first hotfix of v0.20. @nivex discovered a nasty bug in the peppermint.josn access checker - which this release fixes. If the previous releases didn't work for you, try this one.
Note that this release does not include any of the changes that are scheduled for the v0.21 release. If you want those, you should build your own from master
according to the docs (or get in touch - I'm happy to send you a prebuilt copy!).
Changes in v0.21 that will be coming at some point include watchlists, email verification, performance improvements for wikis with lots of pages, and more! If you're looking to help out with that, please do get in touch if you know of a good fuzzy hash implementation in PHP for nearest-neighbour search. I'd really appreciate it :P
Anyway, updating is as simple as updating your local index.php
- grab your copy from this release, or any other documented method (e.g. the downloader).
Edit: Click here to say hi if you've downloaded this release :D
The full changelog for this release is as follows:
v0.20.1-hotfix1
v0.20
It's that time again! 5 years to the day since I first started working on Pepperminty Wiki (!) 🎂 and 4 months, 19 days and 163 commits since v0.19 was released (discounting the 4 hotfix releases made to patch nasty bugs), today I'm releasing 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.
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..
Since v0.20-beta1
- Add optional "say hi" button to first-run setup wizard
- You don't have to click it, but it would be cool if you did :-)
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
v0.20-beta1
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
v0.19.4-hotfix4
Another hotfix release, brought to you by the excellent @SeanFromIT.
This one fixes a nasty bug in the page revision history that has the potential to cause a number of unfortunate issues.
Since v0.19.3-hotfix3
- Fixed page revision id incrementing if you don't have a page called
history
on your wiki (thanks @SeanFromIT!)
v0.19.3-hotfix3
Another hotfix! This time it's (mainly) due to a nasty typo found by the excellent @SeanFromIT - but there are more improvements to the unpacker too, as some people were still experiencing issues with it.
Since v0.19.2-hotfix2
- 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!)
v0.19.2-hotfix2
Another crazy bug just popped up because of the last hotfix..... so I'm fixing it in a second hotfix.
If your wiki is running fine on v0.19.0, then you don't need to download this hotfix.
v0.19.2-hotfix2
- Patched another crazy bug in the extra data system in the downloader
v0.19.1-hotfix1
Oops! Looks like there was a bug in the downloader. This release is a small hotfix that squashes it.
While additional features and less critical bug fixes have been implemented and made for v0.20 on the master branch, this release does not contain those - instead it's a small hotfix containing just the one bug fix that's backported from master.
Since v0.19
- Patched the downloader which was throwing warnings when packing downloads
v0.19
The update that changed the world! Turn everything upside-down.
v0.19 is here! Even though it might not feel like it, this update is a big one, and it changes a number of fundamental internals about the way that Pepperminty Wiki is packaged - which should lead to exciting new features down the line!
Notable Changes
- 🏭 Completed refactored the build system. Now an internet connection is not required for the initial setup on first page load!
- 💎 Splinter the Pepperminty Wiki core into shards to make it more maintainable
- 🧙 Added a new first-run wizard that appears when you first setup a brand-new wiki to help new users get up and running quickly.
- 🔍 Added PDF file preview & a download button for unsupported files
- 📦 Minify the page index by default.
- 🔊 Default to allowing upload of .ogg and .flac files
- 📄 Update Parsedown, the default markdown parser, and use the new untrusted feature to secure the rendering of comments
Full Changelog
Since v0.19-beta2
(No changes have been made since the last beta release.)
Since v0.19-beta1
Changed
- Updated the theme of the new documentation
- Revised the writing modules section of the documentation
Since v0.18
Fixed
- Fixed double-escaping of rendered HTML when nesting templates
- Squashed a warning if the search index doesn't exist yet
- Fixed a crash in the stats updater if no pages in the system have tags yet
- Consolidated
email
andemailAddress
fields into the latter in the user table (#167) - Fixed a crash when trying to access the user table when not logged in as an administrator.
- Fixed help text for the file upload module
- Squashed a warning when uploading a file
Added
- [Module API] Added new extra data system. See
parser-parsedown
andpage-edit
for an example.- Extra data is packed into a zip archive, which is packed into
index.php
via__halt_compiler();
- See the
parser-parsedown
andpage-edit
modules for examples on how to use it.
- Extra data is packed into a zip archive, which is packed into
- [Module API] Added new
delete_recursive()
function. - Added a new obvious link to the user table at the top of the master settings page.
- Added a new first-run wizard to help new users set up the basics of their wiki.
- It also checks to ensure that access to
peppermint.json
is blocked correctly (coming soon as a one-time check to pre-existing wikis) - Pre-existing wikis will not see this first-run wizard - a new
firstrun_complete
setting has been added that's automatically set to true if Pepperminty Wiki does a settings upgrade
- It also checks to ensure that access to
- Default to allowing lossless flac and ogg audio files to be uploaded
- Added new
minify_pageindex
setting, which defaults totrue
and causes the page index to be minified when saved. Improves performance slightly (especially on larger wikis as the page index grows), but makes debugging and ninja-edits more awkward. - [Module API] Added new
save_pageindex()
function which respects the above setting. - Added PDF preview using your browser's default PDF viewer!
- Added download button for unsupported file types
Changed
- Core sharding: split
core.php
into multiple files - Big update to the backend Markdown parser Parsedown
- Use Parsedown's new untrusted feature for comments
- Added new
all_untrusted
setting to allow treating everything as untrusted (default: false) - turn it on if your wiki allows anonymous edits
- Switch to nightdocs instead of docpress - the new docs are available here!
- Add moar badges to the README & docs :D
Removed
Not often I have a removed section!
- [Module API] Remove remote file system in favour of the new extra data system. No more first-run downloads! They are all done at compile-time now.