On 1/15/22 07:03, Petko Yotov wrote:
Hello,

PmWiki version 2.3.1 was published today, and is available at:

  * https://www.pmwiki.org/pub/pmwiki/pmwiki-2.3.1.tgz
    <https://www.pmwiki.org/pub/pmwiki/pmwiki-2.3.1.tgz>
  * https://www.pmwiki.org/pub/pmwiki/pmwiki-2.3.1.zip
    <https://www.pmwiki.org/pub/pmwiki/pmwiki-2.3.1.zip>
  * svn://www.pmwiki.org/pmwiki/tags/latest


January 2022 is the *20th year anniversary* 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.


*PHP 5.3 - 8.1 compatibility*

  * PmWiki 2.3.1 includes updates for PHP 8.0 and 8.1.
  * Consequently, it requires PHP version 5.3 (released 2009) or more
    recent.


*PmSyntax*. A new function PmSyntax was added to the core, and enabled on pmwiki.org.

  * It highlights PmWiki syntax in the documentation, and possibly in
    the basic edit form.
  * It only highlights PmWiki markup, and is independent from
    Highlight.js. See Cookbook:PmSyntax
    <https://www.pmwiki.org/wiki/Cookbook/PmSyntax> and
    |$EnablePmSyntax|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#EnablePmSyntax>.
  * It should highlight most core language features and those of many
    recipes, see this mashup of various markups
    <https://www.pmwiki.org/wiki/Test/PmSyntax>.
  * Developers can add custom rules in the |$CustomSyntax|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CustomSyntax>
    array, see Cookbook:CustomSyntax
    <https://www.pmwiki.org/wiki/Cookbook/CustomSyntax>.
  * The |(:markup:)| directive can now have |class=norender| 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.


*Improvements to the edit form*

  * PmSyntax (above) can be enabled to highlight the PmWiki markup the
    edit form, and should work in recent standards-compliant browsers.
  * The variable |$EnableNotSavedWarning|
    <https://www.pmwiki.org/wiki/PmWiki/EditVariables#EnableNotSavedWarning>
    is now enabled by default. Add to config.php
    ||$EnableNotSavedWarning|
    <https://www.pmwiki.org/wiki/PmWiki/EditVariables#EnableNotSavedWarning>
    = 0;| to disable it.
  * A new variable |$EnableIncludedPages|
    <https://www.pmwiki.org/wiki/PmWiki/EditVariables#EnableIncludedPages>
    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 pmwiki.org if you wish to preview it.
  * The |$EnableEditAutoText|
    <https://www.pmwiki.org/wiki/PmWiki/EditVariables#EnableEditAutoText> 
function
    will now feel more like other text editors by removing the
    automatically inserted bullet when Enter is pressed twice.


*Dates and times, monitoring, review*

  * The |{(ftime)}| Markup expression now accepts a new format '|%o|'
    for the ordinal suffix of the date.
  * The Notify <https://www.pmwiki.org/wiki/PmWiki/Notify> feature now
    accepts a |tz=| timezone specifier for individual subscribers. See
    Notify#tz <https://www.pmwiki.org/wiki/PmWiki/Notify#tz>.
  * A function based on Cookbook:LocalTimes
    <https://www.pmwiki.org/wiki/Cookbook/LocalTimes> was added to the
    core. See the recipe page
    <https://www.pmwiki.org/wiki/Cookbook/LocalTimes> for the
    differences. You can continue using the recipe, or disable it and
    enable the core function.
  * New core variables |$EnableLocalTimes|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#EnableLocalTimes>,
    |$CurrentLocalTime|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentLocalTime>.
  * New markup |@2022-01-09T08:35:00Z| output as a <time> element,
    formatted via |$TimeFmt|
    <https://www.pmwiki.org/wiki/PmWiki/BasicVariables#TimeFmt>;
    localized if |$EnableLocalTimes|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#EnableLocalTimes>.
  * Added a variable |$EnableRecentUploads|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#EnableRecentUploads>
    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 Cookbook:RecentUploadsLog
    <https://www.pmwiki.org/wiki/Cookbook/RecentUploadsLog>.
  * The default |$RecentChangesFmt|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#RecentChangesFmt> now
    use the variable |$CurrentLocalTime|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentLocalTime> 
instead
    of |$CurrentTime|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentTime>. In
    the wiki source text it saves the timestamps in a portable time
    format in GMT, which is then shown formatted per |$TimeFmt|
    <https://www.pmwiki.org/wiki/PmWiki/BasicVariables#TimeFmt> (wiki
    timezone). It looks just like |$CurrentTime|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentTime> did
    previously, but can be converted to the visitor's time zone if
    LocalTimes is enabled. If you have custom |$RecentChangesFmt|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#RecentChangesFmt> 
entries
    that use |$CurrentTime|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentTime>,
    nothing will change for you, but you may want to update these with
    |$CurrentLocalTime|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#CurrentLocalTime> if
    you want to benefit from localization.
  * 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
    Cookbook:DiffDelay <https://www.pmwiki.org/wiki/Cookbook/DiffDelay>
    for an example.
  * 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.


*PageLists, categories, backlinks*

  * PageLists <https://www.pmwiki.org/wiki/PmWiki/PageLists> now accept
    a new argument |category=Name| which lists only pages declared in
    the category with the markup |[[!Name]]|, and does not include pages
    simply linking to |[[Category/Name]]| (unless they also contain
    |[[!Name]]|).
      o The differentiation between links to !Name and Category.Name
        requires the pages containing category links to be re-indexed;
        see Cookbook:ReindexCategories
        <https://www.pmwiki.org/wiki/Cookbook/ReindexCategories> which
        can automate this.
  * Also in PageLists, the arguments |link=| and |category=| now accept
    multiple and negative specifiers, and wildcards. See
    PageLists#wildcards
    <https://www.pmwiki.org/wiki/PmWiki/PageLists#wildcards>. If you
    previously used the recipe Cookbook:PageListMultiTargets
    <https://www.pmwiki.org/wiki/Cookbook/PageListMultiTargets>, please
    disable it when you upgrade to 2.3.0.
  * Category links can now have a different text, like |[[!Name|Text]]|,
    and the markup generally behaves like other links, see PITS:01095
    <https://www.pmwiki.org/wiki/PITS/01095>.


*Styles* (core skin PmWiki-responsive)

  * Collapsible sections details+summary will now change the cursor to
    the "pointer" style over the clickable element, and the color will
    change to "navy".
  * The core table of contents function (|$PmTOC|
    <https://www.pmwiki.org/wiki/PmWiki/LayoutVariables#PmTOC>) has had
    its styles updated, in order to properly indent long sub-headings.


*Core helper functions*

  * A new helper function PSFT() can now be used as an /almost/ drop-in
    replacement for strftime() and gmstrftime() which became deprecated
    in PHP 8.1. Please review the documentation at Functions#PSFT
    <https://www.pmwiki.org/wiki/PmWiki/Functions#PSFT>. If you have
    local configurations or recipes using strftime() you can change for
    PSFT() now.
  * A helper function DownloadUrl(|$pagename|
    <https://www.pmwiki.org/wiki/PmWiki/BasicVariables#pagename>, $path)
    was added, see Functions#DownloadUrl
    <https://www.pmwiki.org/wiki/PmWiki/Functions#DownloadUrl>. It can
    simplify the handling of attached files by recipes.


Last but not least, *the documentation* in English has been updated with the latest development (and in German by MFWolff).

See also Upgrading from version 2.2.145 to 2.3.0 <https://www.pmwiki.org/wiki/PmWiki/Upgrades#v22v23>.

Note: /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./

As always, if you have any questions or difficulties, please let us know.

Petko


_______________________________________________
pmwiki-users mailing list
pmwiki-users@pmichaud.com
http://www.pmichaud.com/mailman/listinfo/pmwiki-users

Congratulations for 20 years! A pmwiki user for over a year now and a refuge from DokuWiki. A year later and still amazed at what I consider the best PHP, webpage period, software out there. I have been doing websites for about 20 years now mostly personally but sometimes professionally. pmwiki was the software I was always looking for. A toast for another 20 years!

Thank you for bringing my enjoyment of writing webpages back.

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

_______________________________________________
pmwiki-users mailing list
pmwiki-users@pmichaud.com
http://www.pmichaud.com/mailman/listinfo/pmwiki-users

Reply via email to