| 7686f203 | 12-May-2026 |
Anna Dabrowska <dabrowska@cosmocode.de> |
Fix syntax plugin rendering
Reverse the order in which core modes and plugin modes are handled by the \dokuwiki\Parsing\Handler. Otherwise only the handle() method of the plugin is called, which is
Fix syntax plugin rendering
Reverse the order in which core modes and plugin modes are handled by the \dokuwiki\Parsing\Handler. Otherwise only the handle() method of the plugin is called, which is fine for core modes. Syntax plugins need to go through plugin() to actually add their own calls.
show more ...
|
| 53307a6b | 09-May-2026 |
Andreas Gohr <andi@splitbrain.org> |
Delete inc/Search/concept.txt
The contents have been added to the wiki
|
| 8788dbbd | 06-May-2026 |
splitbrain <86426+splitbrain@users.noreply.github.com> |
Rector and PHPCS fixes |
| 0096805f | 06-May-2026 |
splitbrain <86426+splitbrain@users.noreply.github.com> |
Update deleted files |
| e7ebba47 | 06-May-2026 |
Andreas Gohr <andi@splitbrain.org> |
updated phpseclib dependency |
| 560c6061 | 06-May-2026 |
Andreas Gohr <andi@splitbrain.org> |
use new ModeRegistry constant in info plugin
Basically all syntax plugins could now return the constants instead of plain string, but the info plugin is the only syntax plugin we have directly in co
use new ModeRegistry constant in info plugin
Basically all syntax plugins could now return the constants instead of plain string, but the info plugin is the only syntax plugin we have directly in core.
show more ...
|
| 56c730b5 | 06-May-2026 |
Andreas Gohr <andi@splitbrain.org> |
keep historic typo in value but not in constant
We need to keep the historic typo in the value ("substition"), but there is no reason to keep it in the constant. |
| 4f29a5b9 | 06-May-2026 |
Andreas Gohr <andi@splitbrain.org> |
SearchIndex: fix comment position
single line comment moved to the wrong line on reformatting |
| 27bd7771 | 02-May-2026 |
splitbrain <86426+splitbrain@users.noreply.github.com> |
Rector and PHPCS fixes |
| 59768247 | 02-May-2026 |
Kerem ATA <contact@zoda-service.web.tr> |
Translation update (tr) |
| 50ca5d06 | 29-Apr-2026 |
Schplurtz le Déboulonné <Schplurtz@laposte.net> |
Translation update (fr) |
| 01e8d739 | 25-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
refactor(changelog): persist external-edit detection on first read
This addresses the flaky test that makes tests randomly fail (mostly on windows runners).
The flake in common_saveWikiText_test::t
refactor(changelog): persist external-edit detection on first read
This addresses the flaky test that makes tests randomly fail (mostly on windows runners).
The flake in common_saveWikiText_test::test_savesequence5 came from this line in ChangeLog::getCurrentRevisionInfo():
'date' => max($lastRev + 1, time() - 1)
The synthesized "external delete" entry was kept in memory only and only persisted later, when saveWikiText next called detectExternalEdit. That meant the formula was evaluated twice on different ChangeLog instances — once during the test's inspection, and again during the following saveWikiText — and the two evaluations could pick different seconds depending on how long the surrounding I/O took. The test cached the first result in $expectExternal and asserted it against the on-disk entry written during the second call. On the slower Windows runner the second call sometimes crossed a second boundary, producing the off-by-one date mismatch.
The questions I had was, why are we persisting external file deletions (or edits) only when a page is saved when we are obviously already detecting it earlier during the changelog read already?
Instead of recording the external delete at the time a new page is written, it makes sense to record it as soon as we detect it (when the changelog is requested by a user or a bot). This will make the recoded timestamp closer to the actual deletion.
This patch refactors the changelog accordingly, but still tries to be minimal invasive (I think the changelog handling would need much more refactoring, but that's beyond the scope of this change).
To enable proper locking (when logging an external edit and copying the attic file), locking had to be moved to the Changelog class, duplicating some code of io_saveFile.
PageFile::detectExternalEdit() and the deprecated procedural wrapper detectExternalEdit() in inc/common.php are removed. A codesearch.dokuwiki.org check confirmed no plugin calls the method directly; the only external caller of the procedural function is the farmsync plugin, which needs a parallel update.
show more ...
|
| b9e35b2f | 25-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
fix(infoutils): escape git log arguments for Windows compatibility
Single quotes are not shell quoting on Windows cmd, causing git to parse '%cd' as an ambiguous revision and emit a fatal error to s
fix(infoutils): escape git log arguments for Windows compatibility
Single quotes are not shell quoting on Windows cmd, causing git to parse '%cd' as an ambiguous revision and emit a fatal error to stderr. Pass each argument through escapeshellarg() so quoting works on both Unix and Windows.
show more ...
|
| daa76355 | 23-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
fix(preview): remove deprecated X-XSS-Protection header
The header was added in 2015 to work around Chrome's XSS Auditor false-positives on preview pages (issue #1182). Chrome removed the auditor in
fix(preview): remove deprecated X-XSS-Protection header
The header was added in 2015 to work around Chrome's XSS Auditor false-positives on preview pages (issue #1182). Chrome removed the auditor in version 78 (2019); no other browser ever shipped it. The header is non-standard, deprecated, and a no-op today.
Fixes #4578
show more ...
|
| ceff19cf | 23-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
fix: don't move the editor textarea into the toolbar
addBtnActionSignature() returns the edid (wiki__text) as its "pickerid" so the signature button gets aria-controls set correctly. Since 7e35897a
fix: don't move the editor textarea into the toolbar
addBtnActionSignature() returns the edid (wiki__text) as its "pickerid" so the signature button gets aria-controls set correctly. Since 7e35897a that return value is also used to re-parent the element into the toolbar, which pulled the textarea out of the edit form. Form submissions then carried no wikitext, breaking preview and silently deleting the page on save. Any plugin toolbar button registered after the signature button (e.g. vshare) also ended up below the textarea instead of in the toolbar.
Skip the append when the returned id matches the editor id.
closes #4623
show more ...
|
| dd9e8e5e | 23-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
fix EXIF-rotated images shown cropped in previews, closes #4482
JPEGs with EXIF orientation 5/6/7/8 were rendered cropped in the mediamanager detail view, the image diff view and the fullscreen deta
fix EXIF-rotated images shown cropped in previews, closes #4482
JPEGs with EXIF orientation 5/6/7/8 were rendered cropped in the mediamanager detail view, the image diff view and the fullscreen detail page: getimagesize() / JpegMeta report raw (rotation-unaware) pixel dimensions, and passing both w and h to fetch.php defaults to center-crop.
- Bump splitbrain/slika to 1.1, which ships ImageInfo: a rotation- aware, metadata-only dimension simulator mirroring Adapter's fluent API (autorotate/resize/crop). - Add fit=1 to fetch.php: when both w and h are given, route to media_resize_image() (bbox fit) instead of media_crop_image(). Token hashes only (id, w, h) so existing tokens stay valid. - Add MediaFile::getDisplayDimensions($w, $h, $crop) which delegates to ImageInfo and returns the dims fetch.php would produce. - Add Display::getDetailHtml() and retire media_preview() / the old media_image_preview_size() helper. media_tab_view and MediaDiff now share the Display-based renderer. - Rewrite tpl_img() (lib/tpl/*/detail.php) to use MediaFile dims + fit=1 URL; drops the manual ratio math. - Tests: MediaFileTest covers the dims math, DisplayTest covers the detail-view HTML (rotated dims, rev-vs-timestamp URL selection, structure), fetch_imagetoken gains a fit-token compat test. Fixture _test/data/media/wiki/exif-orient-6.jpg: 20x30 JPEG with EXIF orientation 6.
show more ...
|
| cba08886 | 19-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
fix: avoid picker close/reopen race on toggle button click
When focus was inside the picker and the toolbar toggle button was clicked, focusout would close the picker before the click handler toggle
fix: avoid picker close/reopen race on toggle button click
When focus was inside the picker and the toolbar toggle button was clicked, focusout would close the picker before the click handler toggled it, causing an immediate reopen. Skip the focusout-triggered close when focus moves to a picker toggle button.
show more ...
|
| 0a5c6ce4 | 19-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
subscriptions: include diff link in plain-text list mails too
Fixes the docblock of lastRevBefore() and extends the diff link added to the HTML list mail to the plain-text variant as well, so both f
subscriptions: include diff link in plain-text list mails too
Fixes the docblock of lastRevBefore() and extends the diff link added to the HTML list mail to the plain-text variant as well, so both formats stay in sync.
show more ...
|
| 8b6706eb | 19-Apr-2026 |
Vyacheslav <bryanskmap@ya.ru> |
Translation update (ru) |
| f0f42d3b | 18-Apr-2026 |
Marek Adamski <fevbew@wp.pl> |
Translation update (pl) |
| 4a909b54 | 18-Apr-2026 |
Eduardo Mozart de Oliveira <eduardomozart182@gmail.com> |
Translation update (pt-br) |
| 90c2f6e3 | 18-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
Clean up stale realip references after client_ip_header rename
Update docblocks in Ip.php and common.php, fix old tests to use the new config key, remove outdated translations, fix method casing in
Clean up stale realip references after client_ip_header rename
Update docblocks in Ip.php and common.php, fix old tests to use the new config key, remove outdated translations, fix method casing in test, and add example to English config description.
show more ...
|
| 59bc5235 | 18-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
fix code copy button copying its own text, closes #4617
Hide the button before reading innerText so the button label is not included in the copied text. |
| 04045fea | 18-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
remove unused rewriteBlocks property from Handler
This flag was added in b7c441b9 (2005) for planned wiki syntax converters but was never set to false anywhere. Remove the dead conditional and alway
remove unused rewriteBlocks property from Handler
This flag was added in b7c441b9 (2005) for planned wiki syntax converters but was never set to false anywhere. Remove the dead conditional and always run Block processing.
show more ...
|
| 3ea3771b | 18-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
supress code sniffer warning on deprecation wrapper
Previously the whole file was excluded. We can now be more precise. |