A wiki in a box
MPL-2.0 License
Published by sbrl about 8 years ago
I've recently reached a personal long time goal for this project: I'm now using it to replace Mediawiki for a personal wiki that I maintain that means a lot to me. During the migration process, naturally, I've uncovered a positively ridiculous number of bugs. This is the beta release for an emergency patch release (that's taken long enough to put together) that fixes most of these issues. The remaining issues have been filed and should have fixes soon.
Please note that there are a pair of critical security issues that have been fixed (#89 and #94) in this release. I highly advise that you update to this release (even though it's a beta release O.o) if you utilise the view protection feature of Pepperminty Wiki.
<tab>
characters to be entered into the editing page textarea (#84)settings.max_recent_changes
(#104)Published by sbrl over 8 years ago
It's been what, almost 3 months since the last release? Shockingly enough, I haven't actually given up on Pepperminty Wiki - and this release is proof of that! This is a medium sized release, with a bunch of behind-the scenes changes that prepare for something awesome later on down the line.
The most important change is that settings are now stored in peppermint.json
, and not in the main index.php
itself. This file will be created automatically on the first page load. You can then customise it from there. After this release, you should never need to manually insert settings on upgrade ever again - it should all happen automatically (although that part hasn't been written yet!)
(This release is practically identical to v0.12-beta2.)
$settings->render_svg_previews
is set to true
.Published by sbrl over 8 years ago
This should be the last beta version before v0.12 hits later today - it tidies up a few things and updates the readme ready for v0.12. Here's the changelog:
Published by sbrl over 8 years ago
Relax safe in the knowledge that I haven't abandoned this project! Since the last release, my second year finals and ACWs happened. Anyway, in between things I've been slowly plugging away at the next release, and now that I've finished my 2nd year at University up, I've found some time to bundle up the next prerelease.
This release is fairly small, but I've made a crucial change: settings are now stored in a JSON file, and not at the top of index.php
. The settings JSON file (called peppermint.json
, and can be found alongside index.php
) will be automatically generated upon the first page load, and can be customised to your heart's content. The names and structure of the settings are much the same as they used to be - it's only the admindetails
setting that's changed slightly in structure.
The idea here is that I'm going to build a GUI for the settings and include it in the next release. This should make upgrading much easier than it was before. This does mean however that upgrading is not going to be easy - you'll have to manually port all your settings over to the new system. Under the new system though, you should never need to hand-edit your settings again - non-existent settings should be filled in automatically (although I haven't written that bit yet...!).
$settings->render_svg_previews
is set to true
.Published by sbrl over 8 years ago
Version 0.11 is here! This update is mainly a polish and bugfix release, but it does contain a few extra features. Here's a list of notable changes:
getallheaders()
if it isn't present{{{~}}}
: Displays the top level page name (i.e. the page that has been requested).{{{*}}}
: Displays a comma-separated list of subpages of the requested page.imagick
php extension installed (installation on linux: sudo apt-get install php-imagick
).Published by sbrl over 8 years ago
This release is precisely the reason why I am doing these beta releases. Upon testing the last release on my server, I discovered that it didn't have the getallheaders()
function. This has been polyfilled and another issue or two have also been fixed.
getallheaders()
if it isn't presentPublished by sbrl over 8 years ago
Hot on the heels of the last release comes a new beta version! While this update is primarily a stability and bugfix update, it does have a few new features. Here's a shorter list of notable features:
Note that this release now requires the imagick
php extension for image preview generation.
{{{~}}}
: Displays the top level page name (i.e. the page that has been requested).{{{*}}}
: Displays a comma-separated list of subpages of the requested page.imagick
php extension installed (installation on linux: sudo apt-get install php-imagick
).Published by sbrl over 8 years ago
Apparently 2 beta releases didn't uncover a really nasty bug. This is an emergency patch for said bug.
Published by sbrl over 8 years ago
Version 0.10 is here! This is a large release with many bug fixes and improvements. It is also the first release to have beta releases made first. This is going to be a regular thing for now on, as I am finding it improves the quality of the actual release.
A couple of extra things have been fixed and changed since v0.10-beta2, the most notable of which is the addition of a license! This is to go along with the addition of Pepperminty Wiki to wikimatrix.org (page here). The license I have chosen is the Mozilla Public License 2.0, as I've used it several times before.
recent-changes
. A link can be found in the "More..." menu by default.parser-parsedown
module and replaced it with code that automatically downloads parsedown and parsedown extra on the first run.recent-changes
module now has a proper help section.Published by sbrl over 8 years ago
This beta release fixes a minor issue with the credits page, and updates a whole bunch of version numbers I completely forgot about.
Published by sbrl over 8 years ago
This release marks the first ever beta release of Pepperminty Wiki. From now on I'll be making beta releases just before a new major verion comes out to catch any issues that may arise.
Also new for this release is an (almost) comprehensive changelog built up over time, detailing all the things that have been added, changed, or removed.
recent-changes
. A link can be found in the "More..." menu by default.parser-parsedown
module and replaced it with code that automatically downloads parsedown and parsedown extra on the first run.recent-changes
module now has a proper help section.Published by sbrl almost 9 years ago
This is a really quick update to v0.9 that fixes a single bug.
list-tags
action - they no longer point to a non-existent action.Published by sbrl almost 9 years ago
I've had this release almost ready to go for a while now, but I've been so busy with University that I haven't had the time to finish it up! Fear not though, as I have managed to find some time to finish this release off properly.
This release is by far the largest release to date. It contains many bugfixes and sevral huge new features that have taken a lot of my time to implement as much of the codebase had to be updated and rewritten.
?action=upload
to check it out.$settings->data_storage_dir
setting.?action=list-tags
.If you need a more complete migration / upgrade guide (there have been several settings added since the last release), please feel free to contact me or leave a comment on my blog and I will be happy to assist you. In the future I'm going to build the above changelog as I go, instead of at the end.
Published by sbrl about 9 years ago
Welcome to a new release! This one has by far the most commits of any release so far at 58, which is about a quarter of all the commits pushed to this repository so far...!
Anyway, this release contains a few big new features (such as page protection and redirect pages). The rest of this release fixes bugs and lays ever more groundwork in preparation for things later on. I've also adopted a different way of committing bug fixes, where I try to bundle each bugfix into it's own commit and prefix the commit message with Bugfix:
. This comes from another (for now secret) project that I've been working on.
You can download the latest release below, or use the online downloader to pick the modules you want to include if you're picky.
build.sh
$env
variable$settings->footer_message
setting to display a message at the bottom of every page, which can contain arbitrary HTML.$settings->editing_message
setting to display a message just before the save edit button, which can contain arbitrary HTML.$settings->protectedpagechar
, which is the string to prepend to a page's title if it's protected (defaults to 🔒
, which is a lock symbol), and adds [ $settings->admindisplaychar . "Toggle Protection", "index.php?action=protect&page={page}" ]
to $settings->nav_links_extra
in order to make the protect option accessible.# REDIRECT [[Page Name]]
. Note that the redirect page support has been added to the view module and that whether a page is a redirect is stored in the page index. This means that if you remove the redirect module after making a page a redirect, it will still function as one until you update it.Published by sbrl about 9 years ago
Welcome to a new release! It has been quite some time, but I can assure you that it was worth the wait :) (If you want it to come quicker, submit a pull request!) In this release, we have:
/
), and then typing the new page's name. They nest, too, so you could have Fruits/Apples/Braeburn
if you wanted!$settings->sidebar_show = true;
to your configuration, or append &sidebar=yes
to the url. Adding to the url sets a cookie to remember your choice for 30 days.action=export
url parameter. Also adds $settings->export_allow_only_admins
, which should be fairly self explanatory.page_renderer::register_part_preprocessor(func)
, which gets passed an array of page parts which can then be tweaked before the page is sent to the user. Make sure that functions you register take a reference to an array as their first parameter.Published by sbrl over 9 years ago
This is a very small release that fixes the following issue:
This prevented the list of pages from appearing when you typed in the search box.
Published by sbrl over 9 years ago
Hello again!
This release doesn't contain too many big new features because I have been busy cleaning up the codebase to make it easier to understand. As always, please report any bugs you find. A link to the online downloader that lets you choose the modules you install can be found in this repository's README.
Published by sbrl over 9 years ago
This huge release marks the beginning of a new era. We have modules! Each module performs one function. At the moment, each module provides a different page. You can find a list of all the module here: https://starbeamrainbowlabs.com/labs/peppermint/download.php
This also means that the build system has changed. The index.php
attached to this release contains all the latest modules. If you want to choose, follow the link above to the downloader.
The scale of this rewrite means that there will probably be some bugs hiding in this release. If you find any, please open on issue, or even better, submit a pull request.
Published by sbrl over 9 years ago
I have prepared another release for your enjoyment :)
This release contains an initial implementation of a semi-automatic update system that pulls the latest version of the code from this repository by default.. You can access the new update page either the help
or credits
pages. Note that you must be an administrator to update the site. If you wish to disable this feature, you can simply set your $sitesecret
to a number, since the update mechanism is the first action to require your site's secret, and it performs type checking when working out whether the site secret is correct.
Other things include a few bugfixes and a quick <meta />
tag to make mobile devices behave.
This release comes with a new theme: I wrote another quick one called Microsoft-esque, which, as you can imagine, is based on the Microsoft website.
I worked out how to generate a changelog based on the commit history, so here it is:
This command came in handy generating the above:
git log v0.3..master --pretty=format:'[%s](//github.com/sbrl/Pepperminty-Wiki/commit/%H)' --reverse >changes.md
Published by sbrl almost 10 years ago
This is a relatively minor release, but with one critical bug fix.
It was pointed out on reddit that the login system was insecure:
/u/lordastley said:
If I'm reading that code correctly, you're storing user auth completely in the cookie instead of using sessions (for instance), which is rather insecure.
If I can get a copy of someone's cookie, snoop their network traffic, etc, I can authenticate as them.
This release switches from using cookies to store login details to using PHP sessions. This does mean that your server must have session support, but hopefully that won't be a big problem.
Installation / updating instructions can be found in the README.