<div dir="ltr">This is an awesome release.<div>Congratulations to Petko and PM for 20 years of PmWiki, all power to your keyboard.</div><div>I think I started using PmWiki very early in the days of version 2 because of its simplicity of install, and powerful markup and features that were continually growing (cf a couple of other wikis which I also tried).</div><div><br></div><div>I remember the fantastic ThumbList recipe from Petko that truly enabled the websites I wish to run.</div><div>I am thankful for the amazing support from the PmWiki community and moreso from Petko and PM.</div><div><br></div><div>I look forward to getting this installed and going in the next few days for my personal wiki, and weeks for my other wikis.</div><div><br></div><div>Ngā mihi nui</div><div><br></div><div>Simon<br><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 16 Jan 2022 at 04:05, Petko Yotov <<a href="mailto:5ko@5ko.fr">5ko@5ko.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-size:10pt;font-family:Arial,Helvetica,sans-serif">
<p>Hello,</p>
<p>PmWiki version 2.3.1 was published today, and is available at:</p>
<ul>
<li><a href="https://www.pmwiki.org/pub/pmwiki/pmwiki-2.3.1.tgz" target="_blank">https://www.pmwiki.org/pub/pmwiki/pmwiki-2.3.1.tgz</a></li>
<li><a href="https://www.pmwiki.org/pub/pmwiki/pmwiki-2.3.1.zip" target="_blank">https://www.pmwiki.org/pub/pmwiki/pmwiki-2.3.1.zip</a></li>
<li>svn://<a href="http://www.pmwiki.org/pmwiki/tags/latest" target="_blank">www.pmwiki.org/pmwiki/tags/latest</a></li>
</ul>
<p><br></p>
<p>January 2022 is the <strong>20th year anniversary</strong> of the release of PmWiki version 0.1, and 13 years since I (Petko) became core developer. This merited additional work and effort with hopefully interesting and useful new production.</p>
<p><br></p>
<p><strong>PHP 5.3 - 8.1 compatibility</strong></p>
<ul>
<li>PmWiki 2.3.1 includes updates for PHP 8.0 and 8.1.</li>
<li>Consequently, it requires PHP version 5.3 (released 2009) or more recent.</li>
</ul>
<p><br></p>
<p><strong>PmSyntax</strong>. A new function PmSyntax was added to the core, and enabled on <a href="http://pmwiki.org" target="_blank">pmwiki.org</a>.</p>
<ul>
<li>It highlights PmWiki syntax in the documentation, and possibly in the basic edit form.</li>
<li>It only highlights PmWiki markup, and is independent from Highlight.js. See <a href="https://www.pmwiki.org/wiki/Cookbook/PmSyntax" target="_blank">Cookbook:PmSyntax</a> and <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#EnablePmSyntax" target="_blank"><code>$EnablePmSyntax</code></a>.</li>
<li>It should highlight most core language features and those of many recipes, see <a href="https://www.pmwiki.org/wiki/Test/PmSyntax" rel="nofollow" target="_blank">this mashup of various markups</a>.</li>
<li>Developers can add custom rules in the <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CustomSyntax" target="_blank"><code>$CustomSyntax</code></a> array, see <a href="https://www.pmwiki.org/wiki/Cookbook/CustomSyntax" target="_blank">Cookbook:CustomSyntax</a>.</li>
<li>The <code>(:markup:)</code> directive can now have <code>class=norender</code> to only show the source code without processing it. This may be useful, together with PmSyntax, in 2 cases: writing/discussing markup code without actually running it, or working on PageList Templates where you want to see and edit them highlighted.</li>
</ul>
<p><br></p>
<p><strong>Improvements to the edit form</strong></p>
<ul>
<li>PmSyntax (above) can be enabled to highlight the PmWiki markup the edit form, and should work in recent standards-compliant browsers.</li>
<li>The variable <a href="https://www.pmwiki.org/wiki/PmWiki/EditVariables#EnableNotSavedWarning" target="_blank"><code>$EnableNotSavedWarning</code></a> is now enabled by default. Add to config.php <code><a href="https://www.pmwiki.org/wiki/PmWiki/EditVariables#EnableNotSavedWarning" target="_blank"><code>$EnableNotSavedWarning</code></a> = 0;</code> to disable it.</li>
<li>A new variable <a href="https://www.pmwiki.org/wiki/PmWiki/EditVariables#EnableIncludedPages" target="_blank"><code>$EnableIncludedPages</code></a> allows listing of other pages included from the currently edited page, with links to see or edit them. When the variable is enabled, the list of pages appears in the edit form, after the text area, in a collapsed <details> element. The list includes pages from which text, text variables, or templates are included from the edited page. This is enabled on <a href="http://pmwiki.org" target="_blank">pmwiki.org</a> if you wish to preview it.</li>
<li>The <a href="https://www.pmwiki.org/wiki/PmWiki/EditVariables#EnableEditAutoText" target="_blank"><code>$EnableEditAutoText</code></a> function will now feel more like other text editors by removing the automatically inserted bullet when Enter is pressed twice.</li>
</ul>
<p><br></p>
<p><strong>Dates and times, monitoring, review</strong></p>
<ul>
<li>The <code>{(ftime)}</code> Markup expression now accepts a new format '<code>%o</code>' for the ordinal suffix of the date.</li>
<li>The <a href="https://www.pmwiki.org/wiki/PmWiki/Notify" target="_blank">Notify</a> feature now accepts a <code>tz=</code> timezone specifier for individual subscribers. See <a href="https://www.pmwiki.org/wiki/PmWiki/Notify#tz" target="_blank">Notify#tz</a>.</li>
<li>A function based on <a href="https://www.pmwiki.org/wiki/Cookbook/LocalTimes" target="_blank">Cookbook:LocalTimes</a> was added to the core. See <a href="https://www.pmwiki.org/wiki/Cookbook/LocalTimes" target="_blank">the recipe page</a> for the differences. You can continue using the recipe, or disable it and enable the core function.</li>
<li>New core variables <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#EnableLocalTimes" target="_blank"><code>$EnableLocalTimes</code></a>, <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentLocalTime" target="_blank"><code>$CurrentLocalTime</code></a>.</li>
<li>New markup <span><code><span><span>@</span><span>2022-01-09</span>T<span>08:35:00</span><span>Z</span></span></code></span> output as a <time> element, formatted via <a href="https://www.pmwiki.org/wiki/PmWiki/BasicVariables#TimeFmt" target="_blank"><code>$TimeFmt</code></a>; localized if <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#EnableLocalTimes" target="_blank"><code>$EnableLocalTimes</code></a>.</li>
<li>Added a variable <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#EnableRecentUploads" target="_blank"><code>$EnableRecentUploads</code></a> which makes it easy to enable the Recent Uploads feature on AllRecentChanges. This is a basic format that may be good enough for many wikis. For more options, see <a href="https://www.pmwiki.org/wiki/Cookbook/RecentUploadsLog" target="_blank">Cookbook:RecentUploadsLog</a>.</li>
<li>The default <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#RecentChangesFmt" target="_blank"><code>$RecentChangesFmt</code></a> now use the variable <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentLocalTime" target="_blank"><code>$CurrentLocalTime</code></a> instead of <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentTime" target="_blank"><code>$CurrentTime</code></a>. In the wiki source text it saves the timestamps in a portable time format in GMT, which is then shown formatted per <a href="https://www.pmwiki.org/wiki/PmWiki/BasicVariables#TimeFmt" target="_blank"><code>$TimeFmt</code></a> (wiki timezone). It looks just like <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentTime" target="_blank"><code>$CurrentTime</code></a> did previously, but can be converted to the visitor's time zone if LocalTimes is enabled. If you have custom <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#RecentChangesFmt" target="_blank"><code>$RecentChangesFmt</code></a> entries that use <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentTime" target="_blank"><code>$CurrentTime</code></a>, nothing will change for you, but you may want to update these with <a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentLocalTime" target="_blank"><code>$CurrentLocalTime</code></a> if you want to benefit from localization.</li>
<li>The "page history" page now has CSS classes for the delay between edits: diffday, diffweek, diffmonth, diffyear. These allow styling of vertical spacing between individual edits in page histories. See <a href="https://www.pmwiki.org/wiki/Cookbook/DiffDelay" target="_blank">Cookbook:DiffDelay</a> for an example.</li>
<li>The page history can now have a "hidden" edit type, in addition to "minor". This is intended to be used by recipes in order to hide, rather than delete, some edits from the page history. A couple of new recipes using this feature will be added in the next few days.</li>
</ul>
<p><br></p>
<p><strong>PageLists, categories, backlinks</strong></p>
<ul>
<li><a href="https://www.pmwiki.org/wiki/PmWiki/PageLists" target="_blank">PageLists</a> now accept a new argument <code>category=Name</code> which lists only pages declared in the category with the markup <code>[[!Name]]</code>, and does not include pages simply linking to <code>[[Category/Name]]</code> (unless they also contain <code>[[!Name]]</code>).
<ul>
<li>The differentiation between links to !Name and Category.Name requires the pages containing category links to be re-indexed; see <a href="https://www.pmwiki.org/wiki/Cookbook/ReindexCategories" target="_blank">Cookbook:ReindexCategories</a> which can automate this.</li>
</ul>
</li>
<li>Also in PageLists, the arguments <code>link=</code> and <code>category=</code> now accept multiple and negative specifiers, and wildcards. See <a href="https://www.pmwiki.org/wiki/PmWiki/PageLists#wildcards" target="_blank">PageLists#wildcards</a>. If you previously used the recipe <a href="https://www.pmwiki.org/wiki/Cookbook/PageListMultiTargets" target="_blank">Cookbook:PageListMultiTargets</a>, please disable it when you upgrade to 2.3.0.</li>
<li>Category links can now have a different text, like <code>[[!Name|Text]]</code>, and the markup generally behaves like other links, see <a href="https://www.pmwiki.org/wiki/PITS/01095" target="_blank">PITS:01095</a>.</li>
</ul>
<p><br></p>
<p><strong>Styles</strong> (core skin PmWiki-responsive)</p>
<ul>
<li>Collapsible sections details+summary will now change the cursor to the "pointer" style over the clickable element, and the color will change to "navy".</li>
<li>The core table of contents function (<a href="https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#PmTOC" target="_blank"><code>$PmTOC</code></a>) has had its styles updated, in order to properly indent long sub-headings.</li>
</ul>
<p><br></p>
<p><strong>Core helper functions</strong></p>
<ul>
<li>A new helper function PSFT() can now be used as an <em>almost</em> drop-in replacement for strftime() and gmstrftime() which became deprecated in PHP 8.1. Please review the documentation at <a href="https://www.pmwiki.org/wiki/PmWiki/Functions#PSFT" target="_blank">Functions#PSFT</a>. If you have local configurations or recipes using strftime() you can change for PSFT() now.</li>
<li>A helper function DownloadUrl(<a href="https://www.pmwiki.org/wiki/PmWiki/BasicVariables#pagename" target="_blank"><code>$pagename</code></a>, $path) was added, see <a href="https://www.pmwiki.org/wiki/PmWiki/Functions#DownloadUrl" target="_blank">Functions#DownloadUrl</a>. It can simplify the handling of attached files by recipes.</li>
</ul>
<p><br></p>
<p>Last but not least, <strong>the documentation</strong> in English has been updated with the latest development (and in German by MFWolff).</p>
<p> </p>
<p>See also <a href="https://www.pmwiki.org/wiki/PmWiki/Upgrades#v22v23" target="_blank">Upgrading from version 2.2.145 to 2.3.0</a>.</p>
<p> </p>
<p>Note: <em>Our release script wasn't configured for a change from 2.2.x to 2.3.x and unexpectedly zeroed the $VersionNum variable which broke some settings in 2.3.0. This quick 2.3.1 release fixes it.</em></p>
<p> </p>
<p>As always, if you have any questions or difficulties, please let us know.</p>
<p>Petko</p>
<p> </p>
<p></p>
</div>
_______________________________________________<br>
pmwiki-announce mailing list<br>
<a href="mailto:pmwiki-announce@pmichaud.com" target="_blank">pmwiki-announce@pmichaud.com</a><br>
<a href="http://host.pmichaud.com/mailman/listinfo/pmwiki-announce" rel="noreferrer" target="_blank">http://host.pmichaud.com/mailman/listinfo/pmwiki-announce</a><br>
</blockquote></div>