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.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.