PmWiki 2.7.1 released
Petko Yotov <[email protected]> Fri, 24 Jul 2026 22:25:07 +0200
| Newsgroups | gmane.comp.web.wiki.pmwiki.announce,gmane.comp.web.wiki.pmwiki.user |
|---|---|
| Message-ID | <[email protected]> |
Hello. PmWiki version 2.7.1 was published today, and is available at:
https://www.pmwiki.org/pub/pmwiki/pmwiki-2.7.1.tgz
https://www.pmwiki.org/pub/pmwiki/pmwiki-2.7.1.zip
svn://www.pmwiki.org/pmwiki/tags/latest
This version includes many changes and additions.
Important if in local configuration PageVariables are defined with the
$authpage variable, please see the updated configuration snippet in
PageVariables#security. Please let me know if you have any questions or
difficulties.
This change was caused by work in progress to reduce and remove the core
reliance on the PHP eval() function. Currently all core PageVariables,
Markup expressions, and most Conditions definitions, which previously
used eval(), have been rewritten to use callback functions which should
be more secure, more stable, and faster.
Existing custom locally defined page variables, conditions, and markup
expressions, should still work like before, but it is now possible to
update them to the new API.
New PHP variables were added, see documentation for $RevisionNum,
$EnableVersionedAssets, $VersionedAssetKeys, $JsonEncodeFn,
$EnableBodyDataAttrs, $VisibleAnchor, $TextSectionQualifyPatterns,
$EnableReadOnlyWithoutConfig.
New Page Variables were added, {$RevisionNum}, {$VersionNum},
{$VersionShort}, {$CurrentLocalTime}, {$CurrentTime}, {$Targets}.
A "visible anchor" markup was added, with double hash like [[##anchor]],
and in headings
!!##visible-anchor Heading
It will show the hash character only, linking to itself, easy for a user
to right-click and copy the link to the anchor. The variable
$VisibleAnchor can be defined to change the character shown. Such
anchors can be used to include sections of other pages with (:include
Page#visible-anchor:) (single hash in the include directive).
A new page store class, TempPageStore, saves page changes in session
storage, for the current visitor only. This will now be enabled if a
wiki does not have a local/config.php file to prevent bots from
instantly abusing new wikis. See $EnableReadOnlyWithoutConfig to change
change it.
The [++big++] and [--small--] font sizes are now defined as class names
in pmwiki-core.css rather than the previous unsafe-inline style.
The {(ftime %#d)} markup expression, and the PSFT() helper function, now
accept "percent hash letter" formats like "%#d" and "%#m" and others,
which would remove any leading spaces and zeros from the related formats
"%d" and "%m".
The optional core script tools.php was refactored into separate scripts.
Recipes can now include only the scripts they need.
A new optional script request.php was added with helper functions to
simplify remote requests from recipes using the PHP-cURL functions.
Input forms can now include a field with the names of optional fields
like checkboxes, see Forms#optkeys.
The conditional markup (:if enabled Variable.Key:) can now be used to
check if a specific key of a PHP global array is enabled, in this case
$GLOBALS['Variable']['Key']. This is intended mostly for recipes that
don't need to define multiple global variables anymore.
A new warning will now appear above the edit and upload forms if PmWiki
detects that the temporary directories have become read-only. This may
indicate grave problems and the system operator or the technical support
team should be notified.
Another warning will appear in the upload form, if upload_max_filesize
or post_max_size from php.ini are smaller than $UploadMaxSize.
The "jxl" image upload extension, and embed extension, was added as
browsers recently started supporting it.
The Dropzone will now show a progress bar while a file is uploaded, and
the icons were removed.
Various improvements and additions to core helper functions, the PmLib
JavaScript library, minor optimizations, bug fixes and updates for
recent PHP versions, see ChangeLog.
The documentation was updated.
P.S. By my mistake with the release script, 2.7.0 included a bug with
$Version and $VersionShort, I have quickly published 2.7.1 to fix it.
Thanks,
Petko