Pepperminty Wiki v0.22 Release Notes

Release Date: 2020-09-11 // over 1 year ago
  • ๐Ÿš€ After a record-breaking number of beta releases, it's finally that time again: another new stable release!

    Check out the major new features:

    • ๐Ÿฑ ๐Ÿ“– Reading time estimations (on by default, toggle with the readingtime_enabled setting)
    • ๐Ÿฑ โ›… Similar page suggestions at the bottom of the page, powered by the search index (on by default, toggle with the similarpages_enabled / similarpages_count settings)
    • ๐Ÿฑ ๐Ÿ“ New syntax features: checkboxes, highlighted text, spoiler text, super/subscript, automatic table of contents - check the inbuilt help page for details
    • ๐Ÿฑ ๐Ÿ“‘ Uploaded PDFs can now be embedded into pages (older wikis make sure that application/pdf is present in the upload_allowed_file_types setting)
    • ๐Ÿ”’ ๐Ÿช Improved cookie security: PHP 7.3+ recommended

    Some notes for admins:

    • โšก๏ธ Make sure you have PHP 7.3+ when you update past this point!
    • ๐Ÿ‘ Owners of existing wikis need to ensure that the upload_allowed_file_types setting in peppermint.json contains application/pdf
    • ๐Ÿ†• New policy: Only officially supported versions of PHP are officially supported by Pepperminty Wiki.
      • If you encounter issues using an unsupported version of PHP, please update before opening an issue.

    ๐Ÿš€ Special thanks to @virtadpt and @SeanFromIT for reporting bugs in this beta release cycle.

    ๐Ÿš€ Have you updated to this release? Click this link to say hi!

    This release also has an experimental GPG and SHA256 hashes file attached. My GPG key is C2F7843F9ADF9FEE264ACB9CC1C6C0BB001E1725 - please open an issue if you encounter any issues ๐Ÿ™‚

    โšก๏ธ 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.

    ๐Ÿ‘€ For those who want to contribute financially as a thank you, I've recently setup a Liberapay to accept donations. It's certainly not required, but would definitely help me out :-) If you want to contribute but Liberapay isn't for you, please let me know (e.g. open an issue, see my website for more contact options)

    Since VERSION_NUMBER_HERE

    ๐Ÿ”„ FULL_CHANGELOG_HERE

    Since v0.22-beta3

    ๐Ÿš€ No changes were made since the last beta release

    Since v0.22-beta2

    ๐Ÿ”„ Changed

    • Don't emit custom CSS unless there's something to emit

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed inbody:searchterm advanced query syntax
    • ๐Ÿ›  Fixed inaccessible colours in the page list when using the dark theme
    • ๐Ÿ›  Fixed invalid HTML generated by new hide_email implementation

    Since v0.22-beta1

    โž• Added

    • โž• Added dark theme via prefers-color-scheme to configuration guide (see the stable channel guide here - will only be updated when v0.22 is released)
    • โž• Added link thingy you can click next to each setting to jump right to it
    • ๐Ÿ“„ [docs] Documented the structure of pageindex.json and recentchanges.json

    ๐Ÿ›  Fixed

    • Obfuscate the admin email address at the bottom of every page - we missed it in v0.22-beta1 (but got every other one though :P) (#205)
    • ๐Ÿ›  Bugfix: Don't use ->text() for recursion when parsing markdown - it resets ->DefinitionData, which breaks footnotes (#209)
    • ๐Ÿ›  Fix name of did you mean index: didyoumeaninddex.sqlite โ†’ didyoumeanindex.sqlite (feature is disabled by default; manual renaming required)

    ๐Ÿ”„ Changed

    • ๐ŸŽ Disable parser cache by default to avoid issues because said cache isn't invalidated when it should be (and doing so would take more of a performance hit than leaving it on)

    ๐Ÿš‘ Since v0.21.1-hotfix1

    โšก๏ธ Make sure you have PHP 7.3+ when you update past this point! It isn't the end of the world if you don't, but it will make you more secure if you do.

    โž• Added

    • [Module Api] Add new search::invindex_term_getpageids, and search::invindex_term_getoffsets, and search::index_sort_freq methods
    • [Module Api] Add new ends_with and filepath_to_pagename core functions
    • โž• Added new syntax features to PeppermintParsedown, inspired by ParsedownExtreme (which we couldn't get to work, and it wasn't working before as far as I can tell)
      • Checkboxes: [] and [x] after a bullet point or at the start of a line
      • Marked / highlighted text: Some text ==marked text== more text
      • Spoiler text: Some text >!spoiler!< more text or Some text ||spoiler|| more text
      • Superscript: Some text^superscript^ more text
      • Subscript: Some text~subscript~ more text
    • โž• Added automatic table of contents! (#155)
      • Put [__TOC__] on a line by itself to insert an automatic table of contents
      • Note that the level of heading generated can be controlled (or even removed) by the new parser_toc_heading_level setting
    • โž• Add <meta name="theme-color" content="value" /> support with the new theme_colour setting. More information: MDN, caniuse. Also used by some platforms to customise embed accents when generating a rich snippet (e.g. Discord).
    • โž• Added reading time estimate to the top of wiki pages - control it with the new readingtime_enabled setting (#172)
      • The algorithm used to estimate reading times is the as the one used in Firefox's reader mode
    • Added similar page suggestions between the bottom of the page content and the comments - control it with the new similarpages_enabled and similarpages_count settings.
    • Added absolute redirect support - use it like this: # REDIRECT [display text](INSERT_REDIRECT_URL_HERE)
      • It's disabled by default due to potential security issues with untrusted editors - enable it with the new redirect_absolute_enable setting (default: false)
    • โž• Added new settings to control various features more precisely
      • comment_enabled controls whether anyone is allowed to comment at all or not
      • comment_hide_all determines whether the commenting system displays anything at all (if disabled, it's (almost) like the feature-comments doesn't exist - consider using the downloader to exclude the commenting system instead of enabling this setting)
      • avatars_gravatar_enabled determines whether redirects to gravatar.com should be performed if a user hasn't yet uploaded an avatar (if disabled then a blank image is returned instead of a redirect).
    • ๐Ÿ’ป PDF previews now show the browser's UI when embedded in pages with the ![alt text](File/somefile.png) syntax
    • [Rest API] Add new typeheader GET parameter to raw action (ref Firefox bug 1319262)

    ๐Ÿ”„ Changed

    • ๐Ÿ†• New policy: Only officially supported versions of PHP are officially supported by Pepperminty Wiki.
    • ๐Ÿ“œ Fiddled with Parsedown & ParsedownExtra versions
    • โœ‚ Removed ParsedownExtreme, as it wasn't doing anything useful anyway
      • Don't worry, we've absorbed all the useful features (see above)
      • NOTE TO SELF: Don't forget to update wikimatrix.org when we next make a stable release! (if you are reading this in the release notes for a stable release, please get in touch)
    • Enabled horizontal resize handle on sidebar (but it doesn't persist yet)
    • ๐Ÿ”’ [security] SameSite=Strict is now set on all cookies in PHP 7.3+
    • ๐Ÿ”’ [security] The Secure cookie flag is now automatically added when clients use HTTPS to prevent downgrade-based session stealing attacks (control this with the new cookie_secure setting)
    • ๐Ÿ›  Standardised prefixes to (most) error_log() calls to aid clarity in multi-wiki environments
    • ๐Ÿ‘Œ Improved pageindex rebuilder algorithm to search for and import history revisions - this helps when converting data from another wiki format
    • Improved spam protection when hiding email addresses. Javascript is now required to decode email addresses - please get in touch if this is a problem for whatever reason. I take accessibility very seriously.
    • Bump weighting of title and tag matches in search results (delete the search_title_matches_weighting and search_tags_matches_weighting settings to get the new weightings)

    ๐Ÿ›  Fixed

    • โš  Squashed a warning when using the fenced code block syntax
    • If a redirect page sends you to create a page that doesn't exist, a link back to the redirect page itself is now displayed
    • Really fix bots getting into infinite loops on the login page this time by marking all login pages as noindex, nofollow with a robots <meta /> tag
    • Navigating to a redirect page from a page list or the recent changes list will no longer cause you to automatically follow the redirect
    • Limited sidebar size to 20% of the screen width at most
    • ๐Ÿ›  Fix the large blank space problem in all themes
    • Squashed the text \A appearing before tags at the bottom of pages for some users (ref)
    • ๐Ÿ›  Fixed an issue causing uploaded avatars not to render
    • ๐Ÿ›  Fixed an obscure bug in the search engine when excluding terms that appear both in a page's title and body
    • โš  Squashed a warning at the top of search results (more insight is needed though to squash the inconsistencies in the search index that creep in though)
    • โœ‚ Removed annoying scrollbars when editing long pages
    • ๐Ÿ›  Fixed an obscure warning when previewing PDFs (#202)
    • Ensure that the parent page exists when moving a page to be a child of a non-existent parent (#201)
    • ๐Ÿ›  Fixed templating (#203)
    • ๐Ÿ›  Fixed warning from statistics engine during firstrun wizard

Previous changes from v0.22-beta3

  • ๐Ÿš€ Another beta release! I should have released this earlier, but I've been really busy with my PhD recently. Anyway, despite the larger-than-usual number of changes in this release, I'm pretty confident that we've got all the showstoppers squashed in this one. If all goes well, I'll be releasing the stable version of v0.22 in 1 week's time (to give everyone time to test this release).

    ๐Ÿš€ This beta release also marks a new record for the most number of beta releases before a stable release!

    Have you updated to this release? Click this link to say hi!

    This release also has an experimental GPG and SHA256 hashes file attached. My GPG key is C2F7843F9ADF9FEE264ACB9CC1C6C0BB001E1725 - please open an issue if you encounter any issues ๐Ÿ™‚

    โšก๏ธ 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.

    ๐Ÿ‘€ For those who want to contribute financially as a thank you, I've recently setup a Liberapay to accept donations. It's certainly not required, but would definitely help me out :-) If you want to contribute but Liberapay isn't for you, please let me know (e.g. open an issue, see my website for more contact options)

    Since v0.22-beta2

    ๐Ÿ”„ Changed

    • Don't emit custom CSS unless there's something to emit

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed inbody:searchterm advanced query syntax
    • ๐Ÿ›  Fixed inaccessible colours in the page list when using the dark theme
    • ๐Ÿ›  Fixed invalid HTML generated by new hide_email implementation