| 
        
 | 
      
        
        
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.35 (2024-07-07) 
- 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 (2024-05-27) 
- Delete wikilib.d/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 (2024-04-21) 
$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 (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) 
- 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 (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) 
- Add 
$EnableUploadMimeMatch.
 - Add 
$EnableMergeLastMinorEdit, edit functions MergeLastMinorEdit (based on Cookbook:FuseEdit), SaveChangeSummary (refactored out of HandleEdit).
 - Fix LogoutCookies() doesn't use a 
$pagename argument.
 - PmForm add condition 'validemail' for use in template require.
 - Add $PmCryptAlgo, pmcrypt() to call password_verify() if it exists. 
 - Refactor HandleDownload() split ServeDownload($filepath, $upname).
 - Add InsertEditFunction($newfn, $where='<PostPage').
 - Add 
$AuthFormRespCode.
 - Add 
$EnableDownloadRanges, default 1.
 - When the token is expired, reopen edit form rather than abort.
 - LocalTimes add $EnableRCListLastEdit.
 - Update documentation.
 
 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) 
- 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 (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) 
- 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 (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.
- Add 
$EnablePmUtils, default enabled.
 - Parallel processing of the pmwiki-utils.js utility functions.
 - Move pmwiki-utils.js move to 
$HTMLHeaderFmt (often prevents page redraw with the TOC/PmToggle/LocalTimes).
 
  - 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) 
- Add PmSyntax, 
$EnablePmSyntax, $CustomSyntax, {$EnabledIMap}, see Cookbook:PmSyntax, Cookbook:CustomSyntax.
 (:markup:) can now have class=norender to only show the source code without processing it.
- Updates for PHP 8.1, hide warnings, add PSFT() replacement for strftime() and 2 callbacks, 
$EnableFTimeNew, update core function calls, add %o for the ordinal suffix of the date (PITS:01418).
 - Notify: 
tz= (timezone) per-user.
 - PageList add category= argument (PITS:00447, PITS:01475); link= and category= now accept multiple pages, wildcards, and negations (PITS:00908).
 - [[!Category]] links can have alternative text (PITS:01095).
 - Simplify/optimize pmwiki-utils.js when using datasets, simplify sorting of table rows without cloning, add LocalTimes().
 - Page history diff anchors to also have "id=" attributes in addition to "name=".
 - Add 
$EnableLocalTimes (default disabled) and styles, add HandleDiffList().
 - Add markup 
@2022-01-09T08:35:00Z output as <time>; localized if $EnableLocalTimes.
 - Add 
$EnableRecentUploads (only Site.AllRecentChanges, only if $RecentUploadsFmt not defined).
 - PmTOC update CSS for properly indented subheadings.
 - Edit form $EnableIncludedPages, add placeholders to e_changesummary and e_author. Enable 
$EnableNotSavedWarning, add to sample-config.php. EditHelp to behave more like a word processor, typing "Enter" twice without writing text removes the preceding bullet.
 - Responsive skin details>summary:hover {color:navy, cursor: pointer;}.
 - PrintDiff() add classes for the delay between edits: diffday, diffweek, diffmonth, diffyear.
 - Add helper function 
DownloadUrl($pagename, $path) moved from LinkUpload().
 - Add $[ULby] i18n string 'uploaded by'.
 - Update documentation.
 
  Older versions
ChangeLog Archive - changes prior to version 2.3.0.
 
 
 
 
 
       |