[pmwiki-announce] PmWiki 2.7.1 released

Petko Yotov 5ko at 5ko.fr
Fri Jul 24 13:25:07 PDT 2026


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

-- 
If you upgrade :  https://www.pmwiki.org/Upgrades



More information about the pmwiki-announce mailing list