ChangeLog

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.38 (Sunday, 3 November 2024)

  • Add helper function PosArgs?($args, $posnames).
  • Refactor $MessagesFmt to allow nested arrays with keys that can be set from recipes and new attributes (:messages keys=a,b details=open:). If a message starts with "markup:" it will now be processed through the markup engine.
  • Add $UploadBlockPatterns, deprecate $UploadBlacklist.
  • PmForm? update for PHP 8, add {$$CurrentLocalTime}.
  • Notify update for PHP 8.3 (PITS:01513).
  • Wikistyles allow for calc operators + / * (PITS:01514).
  • Update documentation.

Version 2.3.37 (Wednesday, 21 August 2024)

Version 2.3.36 (Wednesday, 7 August 2024)

Version 2.3.35 (Sunday, 7 July 2024)

  • PmSyntax? (:comment ...:) add required space; add (:input defaults ...:) (with "s").
  • Enable highlighted source with ?action=source&highlight=1.
  • Update default sidebar, https links, PITS and Mailing lists in conditional.
  • Remove upload extensions "svg", "svgz", "htm", "html", "css", "swf", "fla", "epub", and files with no extension. Fix mime types for "wmf", "psd".
  • Fix page title could accidentally include raw HTML.
  • Update documentation.

Version 2.3.34 (Monday, 27 May 2024)

  • Delete wikilib.PmWiki?.PerGroupCustomizations? (unused redirect), content moved to GroupCustomizations 14 years ago.
  • RecipeCheck? remove table width attribute (suggested by Simon).
  • Add (:if action browse,edit:) conditional.
  • $GUIButtons remove invalid elements (warning reported by Simon).
  • phpdiff.php fix for PHP 8 when saving new pages (reported by Simon).
  • Responsive skin: remove old CSS declarations like @-moz-keyframes (PITS:01507).
  • Add upload extension 'm4a'.
  • Update documentation.

Version 2.3.33 (Sunday, 21 April 2024)

  • $EnablePreviewChanges to show "No changes" if there are no changes.
  • PmSyntax? add rules for colored pagenames and URLs? inside bracket links.
  • Responsive skin hide dropdown icons from printing.
  • Fix some cases with conditional markup and markup expressions where an empty code could be evaluated (suggested by Goodguy00).
  • Add $HTMLTitleFmt (PITS:01502).
  • Cache auth conditional results for (:if auth level:).
  • Update blocklist.php for PHP 8, reported by Foster Schucker.
  • Update documentation.

Version 2.3.32 (Sunday, 24 March 2024)

  • 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 (Friday, 23 February 2024)

  • 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 (Monday, 22 January 2024)

  • 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 (Monday, 18 December 2023)

  • Fix urlapprove.php for PHP 8.2.
  • PmSyntax textarea remove styles for width, height (Cookbook:PmSyntax-Talk), allow for fractional dimensions of the highlighted area.
  • $MarkupDirectiveFunctions allow dashes in attribute names.
  • Update documentation.

Version 2.3.28 (Monday, 27 November 2023)

  • 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 (Monday, 23 October 2023)

  • 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 (Thursday, 28 September 2023)

Version 2.3.25 (Saturday, 29 July 2023)

  • 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 (Tuesday, 6 June 2023)

Version 2.3.23 (Wednesday, 3 May 2023)

  • 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 (Thursday, 6 April 2023)

  • 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 (Monday, 6 March 2023)

  • 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 (Sunday, 12 February 2023)

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

Version 2.3.19 (Saturday, 11 February 2023)

  • 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 (Sunday, 15 January 2023)

  • 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 (Saturday, 17 December 2022)

  • WikiStyles trim class names (PITS:01485).
  • GUIEditButtons? refactor to enable Undo in textarea; allow for custom functions to configure mopen, mclose, and unselect for their buttons.
  • EditHelp refactor to allow undo; add shortcuts Ctrl+L convert selection to lowercase, Ctrl+Shift+L to uppercase, Ctrl+Shift+ArrowUp? and ArrowDown? to swap lines.
  • Skip upgrade check if $EnableReadOnly.
  • Fix bug with multiple $MarkupDirectiveFunctions.
  • Add $EnableBaseNameConfig.
  • PmSyntax optimize for larger pages (cont.).
  • Input password add class "inputbox" like the other fields.
  • CondAuth?() added way to check for usergroup permissions.
  • Update in pagelist.php for PHP 8.
  • Documentation update.

Version 2.3.16 (Monday, 28 November 2022)

  • 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 (Monday, 21 November 2022)

  • 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 (Thursday, 3 November 2022)

  • 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 (Friday, 7 October 2022)

Version 2.3.12 (Sunday, 25 September 2022)

  • 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 (Tuesday, 30 August 2022)

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

Version 2.3.10 (Saturday, 20 August 2022)

  • 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 (Thursday, 18 August 2022)

  • Add non-wildcard $DefaultUnsetPageTextVars to (:input default:) (reported by Johnny).
  • PmSyntax handles new selectors pre.pmhlt, code.pmhlt.
  • Update for PHP 8 (PITS:01478).
  • Update documentation.

Version 2.3.8 (Friday, 22 July 2022)

  • 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 (Tuesday, 28 June 2022)

  • $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 (Sunday, 19 June 2022)

  • 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 (Monday, 23 May 2022)

  • 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 (Friday, 22 April 2022)

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

Version 2.3.3 (Saturday, 26 March 2022)

  • 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 (Wednesday, 9 February 2022)

  • 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 (Saturday, 15 January 2022)

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

Version 2.3.0 (Saturday, 15 January 2022)

Older versions

ChangeLog Archive - changes prior to version 2.3.0.


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