PmWiki /
ChangeLog
< Release notes | Documentation Index | Glossary >
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.
- Add helper function PosArgs($args, $posnames).
- Refactor
$MessagesFmt
to allow nested arrays with keys and(:messages key=a,b:)
that can be set from recipes. - Responsive skin: cache SkinElements pages.
- Update for PHP 8.
- Add helper function PRI() "PmWiki Recursive Implode".
- pmwiki-utils.js add "draggable".
- Add PageVariable
{$GroupHomePageUrl}
. $EnableSortable
,$EnableSimpleTableRowspan
enabled by default.- PmSyntax update for
$EnableSimpleTableRowspan
and for Cookbook:InputStar; fix line-height for some skin configurations. - Add
$EnableCommonEnhancements
, update docs/sample-config.php, remove from sample-config.php$EnableNotSavedWarning
which was enabled in 2.3.0. - Add
$EnableObfuscateEmails
,$EnablePreserveLineBreaks
. - Add
$EnableUrlApprove
,$EnablePmForm
,$EnableCreole
,$EnableRefCount
,$EnableFeeds
(PITS:01511). (:input e_minorcheckbox:)
to include label and title per$EnableMergeLastMinorEdit
, update Site.EditForm, XLPage.
- Update documentation.
Version 2.3.36 (2024-08-07)
- Add
$EnableUploadDrop
based on Cookbook:DragDropMultiUpload. - Add
$TROEPatterns
. - Update for PHP 8 (PITS:01510)
- Store a history entry when a page is deleted.
- Update documentation.
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)
- Add configurable
$InputLabelFmt
snippet (PITS:01493). - Add configurable
$TrailFmt
snippets. - Add
$EnableSearchAtLeastOneTerm
, default disabled. - Unset upload extensions if size for the extension is set to 0.
- Update feeds.php for PHP 8.2 (PITS:01494).
- Update documentation.
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()
splitLogoutCookies()
. - 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.
AddRedesigned in 2.3.31$EnableUploadVersions
>=10 to rename base.ext to base-1.ext, base-2.ext,...- 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)
- Close potential XSS vulnerability, reported by lukystreik (PITS:01483).
- Refactor
$MultiFactorAuthFunction
, add$FailedLoginsFunction
. - Update documentation.
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 defaultplaceholder="$[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
and$FmtV
["$filepath"]
with the file path and direct URL to the newly uploaded file.$FmtV
["$upurl"] - 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).
- Add
- 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 haveclass=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
$CurrentLocalTime
in the above format, used by default in$RecentChangesFmt
.
- Add
- 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(
moved from$pagename
, $path)LinkUpload()
. - Add $[ULby] i18n string 'uploaded by'.
- Update documentation.
Older versions
ChangeLog Archive - changes prior to version 2.3.0.
< Release notes | Documentation Index | Glossary >
This page may have a more recent version on pmwiki.org: PmWiki:ChangeLog, and a talk page: PmWiki:ChangeLog-Talk.