See the cookbook recent changes page for additional updates and activity by other developers, or join the PmWiki mailing lists to discuss feature development with us.

Version 2.3.32 (2024-03-24)

  • Dark theme: add toggleImages(), add $ImgDarkSuffix, $FmtV['$PathUpload']. Restore light styles and pictures for printing.
  • Responsive skin: white background when printing, move dark toggle label styles into skin.css.
  • PmSyntax?: only apply dark theme colors on screen (not print).
  • Add upload extensions and image extension patterns AVIF, AVIFS.
  • Lock AllRecentChanges? in case of concurrent uploads.
  • FileSizeCompact?() allow for base 1000 (PITS:01499).
  • Update documentation.

Version 2.3.31 (2024-02-23)

  • Add $EnableDarkThemeToggle, enable 3-way theme toggle, "Light", "Dark" and "Auto", add annotation tooltip showing the current theme on tap and on mouse over.
  • Refactor config data passed to pmwiki-utils.php, refactor dark toggle functions into a separate script.
  • Responsive skin add body attributes for group and page name, update dark theme, enable auto theme (browser preferences) by default.
  • PmSyntax? improve dark theme thanks to a script by Said Achmiz; expose color properties for reuse.
  • Refactor redirect quiet (PITS:01498).
  • Page attributes passwords form: allow for +addition and -removal of passwords, users, groups.
  • Allow $EditTemplatesFmt entries to apply to specific pages with name= specification (suggested by Simon).
  • Forms add attribute "form".
  • Refactor $PostConfig to allow called functions to update it.
  • Update RecipeCheck? to also list skins, suggested by Simon.
  • Refactor PrintFmt?, add $EnablePrePrintFmt.
  • WikiStyles add 'columns'.
  • When Highlight.js is enabled, Vardoc links will be the same color as variables in highlighted code blocks.
  • Refactor $EnableUploadVersions.
  • Update documentation.

Version 2.3.30 (2024-01-22)

  • Add prototype for dark theme toggle. See PITS:01497 and Cookbook:DarkColorScheme.
    • PmWiki-responsive skin converted CSS colors to variables, added dark theme styles.
    • Add skins/pmwiki/pmwiki-32.svg, enable default for $PageLogoUrl.
    • PmSyntax? added dark theme styles.
  • $EnableUploadMimeMatch with Fileinfo not enabled to deny uploads.
  • upload.php fix warning for PHP 8.
  • RecipeCheck? use https, suggested by Simon.
  • PrintDiff?() add $since argument.
  • Add $EnableRedirectQuiet = 2. Prevent infinite redirect loops.
  • Fix Attach: links with escaped path and filename.
  • Improved readability for inline diffs in page history.
  • Forms enable input e_author not only for action=edit, fix unquoted positional form action URL.
  • Update documentation.

Version 2.3.29 (2023-12-18)

Version 2.3.28 (2023-11-27)

  • Add input month and color fields.
  • Add $NotifyRelatedTrailFmt.
  • Reverse simpletable row backgrounds when there is a thead element.
  • Fix pmwiki-utils.js when window.localStorage is disabled.
  • UrlApprovals allow https: URLs? if the http: URL for the same domain has been approved (PITS:01431).
  • Update documentation.

Version 2.3.27 (2023-10-23)

  • When merging last edit, if there is no change summary, reuse the last one.
  • Keep unknown date/time formats for undefined timezone (PITS:01495).
  • DiffRenderSource?() fix for PHP 8, keep ins/del tags on the same line.
  • The ".diffmarkup" element now has the style "white-space: pre-wrap".
  • Add new keyword shortcuts Ctrl+B (bold), Ctrl+I (italic), Ctrl+K (link/unlink).
  • Update documentation.

Version 2.3.26 (2023-09-28)

Version 2.3.25 (2023-07-29)

  • Updates for PHP 8.2.
  • Fix pagelist when 2+ directives on the same line, reported by Simon.
  • Fix possible bug with internal group(header|footer) directives caused by PRR().
  • Update documentation.

Version 2.3.24 (2023-06-06)

Version 2.3.23 (2023-05-03)

  • Refactor pmtoken() to use session tokens, enable for core actions.
  • Add (:input pmtoken:) helper.
  • PmForm? add $PmFormEnablePmToken.
  • Refactor HandleLogoutA?() split LogoutCookies?().
  • Fix PRCB() for PHP < 7.4.
  • Update documentation.

Version 2.3.22 (2023-04-06)

  • Add scripts/pmform.php, Site.PmFormTemplates.
  • FmtDateTimeZ?() can now accept Unix timestamps.
  • Pagelists fix bug with multiple category=+A,+B entries.
  • Update for PHP 8.1 (PITS:01488).
  • MarkupDirectiveFunctions? will now cast numeric arguments to floats.
  • Prevent errors in custom PageVariables from generating internal server errors (PITS:01489).
  • Improve inline diff for rare cases (end of page).
  • Forms/buttons with data-pmconfirm="Question" will ask the question before they are submitted.
  • Update documentation.

Version 2.3.21 (2023-03-06)

  • Add $IsPmArchive, $PmArchiveDir.
  • Sortable tables with <time datetime=""> elements can be sorted by the datetime attribute. Fix for tables with preexisting <thead> element.
  • Updates for PHP8?.
  • Add CSV upload extension.
  • LocalTimes? add mode=3 to show old dates as MM'YY.
  • Fix bug with multiline $MarkupDirectiveFunctions, reported by Antti Tikanmäki.
  • Add $EnableCopyCode and Copy code button to <pre> blocks, suggested by Alex Doré.
  • Update PmTOC? to work better with Cookbook:SectionEdit.
  • Update documentation.

Version 2.3.20 (2023-02-12)

  • Fix undefined variable warning, reported by Gregor Klarič.

Version 2.3.19 (2023-02-11)

  • Only set cookie params if headers not sent.
  • Update for PHP8?.2, reported by Dfaure. PageVar?() update for PHP 8.
  • Add variable $DiffPrepareInlineFunction.
  • PageListCache?() remove unused global $PageIndexFile.
  • Add configurable $LocalCSSDir, $LocalCSSDirUrl.
  • DownloadUrl?() add $FmtV['$LinkDownload'] with current or future download link.
  • Add pm_recode() helper function (based on PageStore?::recodefn), check for more transcode options.
  • HandleBrowse?() add $FmtV['$PageSourceText'].
  • Add helper function KeepBlock?().
  • Add $FarmPubDirPrefix, pm_servefile(), $ServeFileExts.
  • Update documentation.

Version 2.3.18 (2023-01-15)

  • Refactor scripts/utils.php, add pm_json_encode() (PITS:01486).
  • EditAutoText?() fix for lines ending with multiple backslashes.
  • PmSyntax? optimize/refactor for large pages (cont.), fix inline escaped texts could ignore line markups, add EnableStopwatch?.
  • Notify fix typo in regular expression.
  • Add $EnableUploadVersions >=10 to rename base.ext to base-1.ext, base-2.ext,... Redesigned in 2.3.31
  • CondAuth?() fix bug with global $AuthList.
  • Add helper function PRCB() for simpler preg_replace_callback passing variables.
  • Update scripts/refcount.php for PHP 8, reported by George Murray.
  • Add PageVariable? $PageLogoUrl (PITS:01297).
  • Update documentation.

Version 2.3.17 (2022-12-17)

Version 2.3.16 (2022-11-28)

  • Class PPRC add generic callbacks.
  • IncludeText?() update for PHP 8, reported by V.Krishn.
  • WikiStyle? add 'overflow', 'notoc'.
  • Add PmNonce?().
  • PmTOC? update indented link style->classname.
  • Responsive skin: replace [[<<]] with <br class='clearboth' />, update PmTOC? styles.
  • $EnableListIncludedPages use class name instead of style.
  • guiedit.js remove unneeded style.
  • PmSyntax? realign font for nested programming languages in the edit form, optimize for large pages.
  • Only call session_status() if function exists.
  • Edit form remove unsafe-inline script.
  • Revert WikiStyleToClassName?(), PrePrintFmt?() -- need more work (PITS:01484).
  • Documentation update.

Version 2.3.15 (2022-11-21)

  • CSS pre, code relative/scalable font-size (pmwiki-responsive skin).
  • PmSyntax? add variable --pmsyntax-fontsize-editform and split from --pmsyntax-fontsize [1].
  • PmSyntax? fix [[Highlight]] label font size and family (reported by Hans).
  • Add variable $CookieSameSite default to 'Lax'
  • Add argument $samesite to pmsetcookie(), default to $CookieSameSite, refactor for old and new PHP versions.
  • Add function pm_session_start() respecting local configuration.
  • CSP header add base-uri=self; object-src 'none'.
  • Add $HTTPHeaders['XSSP'] = 'X-XSS-Protection: 1; mode=block'.
  • Rewrite GUIButtons? logic to avoid unsafe-inline JavaScript?.
  • Refactor WikiStyles, replace inline styles with class names to avoid unsafe-inline CSS.
  • Refactor PQA(), tables, cells, to replace inline style="..." with class names to avoid unsafe-inline CSS.
  • Add PrePrintFmt?(), refactor PrintFmt?(), PrintSkin?() to process wiki pages, skin parts, and skin functions to HTML before outputting headers.
  • Fix XSS vulnerability.
  • Documentation update.

Version 2.3.14 (2022-11-03)

  • Searchbox also escape custom field names.
  • Prevent double-encoded entities in searchbox (reported by Simon).
  • Trim $Author (PITS:01208).
  • Replace autofocus inline JavaScript? with attributes.
  • Edit form: the label next to the "Minor edit" checkbox now toggles the checkbox.
  • PmSyntax? recognize (:template requires? ...:).
  • Update for PHP 8.
  • Obsolete PCCF() from PHP 7.2 not 8.0.
  • Add array $ObsoleteMarkups, function TraceMarkup?(), update Markup(), Markup_e() and ObsoleteMarkup?(), to retrieve and show files and line numbers for obsolete/disabled markup rules.
  • Fix bug with PSFT format %L.
  • Update documentation.

Version 2.3.13 (2022-10-07)

Version 2.3.12 (2022-09-25)

  • Stripmagic() cast null to "" and other fixes for PHP 8.
  • Fix parse error for complex conditionals with empty variables (PITS:01480).
  • PSFT() and MarkupExpression? ftime add %L as human readable local timestamp.
  • MarkupRestore?() fix wrong cast to empty string of false-ish values.
  • PrintAuthForm?() split from PmWikiAuth?().
  • Fix warning for unneeded session_regenerate_id() (reported by George Murray).
  • Update documentation.

Version 2.3.11 (2022-08-30)

  • Add PageVariables {$GroupHomePage}, {$GroupHomePageName}, {$GroupHomePageTitle}, {$GroupHomePageTitlespaced}.
  • Add $MarkupDirectiveFunctions.
  • Fix stripmagic() for arrays recently broke after PHP8? update.
  • Update documentation.

Version 2.3.10 (2022-08-20)

  • Update for PHP 8.1 (reported by Armin B├╝hler).
  • Forms will now prefill wildcard variables from $DefaultUnsetPageTextVars or $DefaultEmptyPageTextVars.
  • $EnablePmSyntax = 3; will enable syntax highlighting in the edit form by default, without the user clicking on "Highlight". Fix occasional text mis-alignment between the text area and the highlighted block.
  • Update documentation.

Version 2.3.9 (2022-08-18)

Version 2.3.8 (2022-07-22)

  • PmSyntax? fix for 2 different %hlt% on the same line (reported by Simon).
  • Fix broken include when the first page doesn't exist.
  • Update documentation.

Version 2.3.7 (2022-06-28)

  • $HTTPHeaders add X-Frame-Options (suggested by Imagine Dragon) and Content-Security-Policy to disallow embedding in external websites by default.
  • $EnableHighlight will now remember any links to PmWiki variables and restore them after the highlighting, see thread.
  • $EnablePmSyntax will now process %hlt pmwiki% in addition to %pmhlt% blocks, and escaped markup after it will be tentatively highlighted.
  • Update documentation.

Version 2.3.6 (2022-06-19)

  • Fixes for PHP 8.
  • Add form attribute "lang".
  • Sortable tables allow for table headers to have markup such as bold (except links). It will now use a case-insensitive natural ordering.
  • Allow for $UploadVerifyFunction to modify $upname.
  • Add variable $PageIndexTermsFunction.
  • Searchbox allow for removal of submit button if label=""; add default placeholder="$[Search]".
  • Fix author.php may be included before some variables are defined, reported by Said Achmiz.
  • $EnableHighlight convert code blocks to plain text, see thread.
  • Documentation update.

Version 2.3.5 (2022-05-23)

  • Fix broken list=grouphomes (PITS:01477).
  • Add DisableSkinParts?() helper function for recipes.
  • HandlePostUpload?: add $FmtV["$filepath"] and $FmtV["$upurl"] with the file path and direct URL to the newly uploaded file.
  • In pmwiki-utils.js, replace forgotten let with var (suggested by SteP?).
  • Update for PHP 8.1.
  • Update documentation.

Version 2.3.4 (2022-04-22)

  • Fixes for PHP 8 warnings, reported by Siegfried Seibert.
  • Update documentation.

Version 2.3.3 (2022-03-26)

  • Fix for PHP 8 warnings, reported by Jean-Patrick Charrey, Dominique Faure and Siegfried Seibert.
  • Update README.txt and docs/ files, suggested by Simon Davis.
  • Update documentation.

Version 2.3.2 (2022-02-09)

  • Allow for $EnableLocalTimes to define custom duration of the pulled page history.
  • Rename variable $EnableIncludedPages to $EnableListIncludedPages (avoid ambiguity).
  • Remove $LinkAlt when an embedded picture without an alternative text fails to load.
  • PmSyntax?:
    • Allow for line breaks \\ inside headings, tables, list items (like the core).
    • Parallel processing of multiple blocks.
  • Add scripts/utils.php; move loading of pmwiki-utils.js and PmSyntax? to scripts/utils.js.
  • Fix bug causing invalid page name when the name is "Group.0".
  • Fix PHP 8.1.2 warnings, reported by Jürgen Godau and Dominique Faure.
  • LocaltTimes? fix "rcnew" classes for wikis with the older format.
  • Update documentation.

Version 2.3.1 (2022-01-15)

  • Fix the release script which broke the $VersionNum variable and the [[#anchor]] markup with the PmWiki-responsive skin.

Version 2.3.0 (2022-01-15)

Older versions

ChangeLog Archive - changes prior to version 2.3.0.

This page may have a more recent version on PmWiki:ChangeLog, and a talk page: PmWiki:ChangeLog-Talk.