| dba14ea3 | 16-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
add unit tests for ModeRegistry |
| 1f443476 | 16-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
split Formatting into individual classes per formatting type
Introduce AbstractFormatting as a base class and seven concrete classes (Strong, Emphasis, Underline, Monospace, Subscript, Superscript,
split Formatting into individual classes per formatting type
Introduce AbstractFormatting as a base class and seven concrete classes (Strong, Emphasis, Underline, Monospace, Subscript, Superscript, Deleted) that each define their own patterns and sort order. Delete the old Formatting class and update tests to use the new classes directly. ModeRegistry now treats formatting modes as regular built-in modes.
show more ...
|
| c8dd1b9d | 16-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
introduce ModeRegistry to encapsulate parser mode categories
Replace the global $PARSER_MODES definition in inc/parser/parser.php with a ModeRegistry singleton that initializes and manages the mode
introduce ModeRegistry to encapsulate parser mode categories
Replace the global $PARSER_MODES definition in inc/parser/parser.php with a ModeRegistry singleton that initializes and manages the mode categories. The global array is still populated for backward compatibility with plugins that access it directly.
Mode constructors now use ModeRegistry::getModesForCategories() instead of accessing the global directly. p_get_parsermodes() and p_sort_modes() are moved to inc/deprecated.php as thin wrappers.
show more ...
|
| 8c5fa126 | 16-Apr-2026 |
Andreas Gohr <gohr@cosmocode.de> |
deduplicate finalise() across rewriter subclasses
Move the identical finalise() logic into AbstractRewriter with an abstract getClosingCall() method. Lists, Quote, Table, Preformatted and Nest each
deduplicate finalise() across rewriter subclasses
Move the identical finalise() logic into AbstractRewriter with an abstract getClosingCall() method. Lists, Quote, Table, Preformatted and Nest each provide their closing call name instead of duplicating the full method.
show more ...
|
| 57d61403 | 16-Apr-2026 |
Andreas Gohr <gohr@cosmocode.de> |
remove unused Doku_Handler::fetch() method
Confirmed zero callers in core and plugin ecosystem. |
| 8ab4ec30 | 16-Apr-2026 |
Andreas Gohr <gohr@cosmocode.de> |
remove dead ParallelRegex::apply() method
Remove apply() which was never called from production code. Rewrite the inherited SimpleTest tests to use split() instead, and add a test for pre/post-match
remove dead ParallelRegex::apply() method
Remove apply() which was never called from production code. Rewrite the inherited SimpleTest tests to use split() instead, and add a test for pre/post-match splitting.
show more ...
|
| f8026da1 | 16-Apr-2026 |
Andreas Gohr <gohr@cosmocode.de> |
replace magic strings with class constants in Lexer
Introduce MODE_EXIT and MODE_SPECIAL_PREFIX constants to replace the undocumented "__exit" and "_" string conventions used for mode transitions. |
| e06577d2 | 15-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
better whitespace handling in log viewer |
| b929bbff | 15-Apr-2026 |
Vyacheslav <bryanskmap@ya.ru> |
Translation update (ru) |
| fe6048cc | 14-Apr-2026 |
Alexander Lehmann <alexlehm@gmail.com> |
remove realip option, add default in conf/dokuwiki.php |
| 3f4748e6 | 06-Mar-2026 |
Tobias Bengfort <tobias.bengfort@posteo.de> |
close picker on focusout and escape |
| 2322900d | 06-Mar-2026 |
Tobias Bengfort <tobias.bengfort@posteo.de> |
a11y: rm picker from tab order when hidden
effect on accesskey:
- firefox: works either way - chrome: does not work either way |
| 8ddf96a8 | 06-Mar-2026 |
Tobias Bengfort <tobias.bengfort@posteo.de> |
a11y: tweak picker aria attributes
inspired by https://github.com/twbs/bootstrap/pull/33624 |
| 7e35897a | 06-Mar-2026 |
Tobias Bengfort <tobias.bengfort@posteo.de> |
a11y: move picker after the relevant button |
| 3051e003 | 06-Mar-2026 |
Tobias Bengfort <tobias.bengfort@posteo.de> |
fix: set aria-hidden in pickerClose() |
| 882968ae | 12-Apr-2026 |
Tobias Bengfort <tobias.bengfort@posteo.de> |
pagetools: reuse variables for calculations |
| 522a66bb | 06-Mar-2026 |
Tobias Bengfort <tobias.bengfort@posteo.de> |
pagetools responsive size |
| 051d1487 | 12-Apr-2026 |
splitbrain <86426+splitbrain@users.noreply.github.com> |
Update deleted files |
| 10b4c161 | 06-Mar-2026 |
Tobias Bengfort <tobias.bengfort@posteo.de> |
replace size control icons by svg |
| bfc167db | 11-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
Limit namespace depth in io_createNamespace() #4613
Throw a RuntimeException when the given ID contains 128 or more colon-separated segments, preventing creation of excessively deep directory hierar
Limit namespace depth in io_createNamespace() #4613
Throw a RuntimeException when the given ID contains 128 or more colon-separated segments, preventing creation of excessively deep directory hierarchies.
show more ...
|
| 743a6908 | 11-Apr-2026 |
splitbrain <86426+splitbrain@users.noreply.github.com> |
Rector and PHPCS fixes |
| 894c1577 | 11-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
skip strict types rector
even though this rule only adds strict type checking for classes that already are fully typed, I am a bit hesitant to add the strict type declaration yet. maybe later |
| 867da04d | 11-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
Less ubiquitous feed caching. addresses #4574
Instead of creating caches for each and every requested feed, only the recent feed is still cached.
The number of items is clamped to conf[recent]*5.
Less ubiquitous feed caching. addresses #4574
Instead of creating caches for each and every requested feed, only the recent feed is still cached.
The number of items is clamped to conf[recent]*5.
Plugins can influence the caching behavior via the existing FEED_OPTS_POSTPROCESS event by setting cache_allow to true and optionally adding their own cache key in cache_key
Additionally the per-namespace feed autodiscovery link from <head> pointing to list-mode feeds has been removed.
show more ...
|
| f88cbbf8 | 11-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
Move copy button base styles to lib/styles for template independence
The copy-to-clipboard button positioning was only defined in the dokuwiki template's content.less, leaving third-party templates
Move copy button base styles to lib/styles for template independence
The copy-to-clipboard button positioning was only defined in the dokuwiki template's content.less, leaving third-party templates with an unstyled button. Move the minimal positioning rules (relative container, absolute button, RTL flip) into lib/styles/screen.css so every template gets a usable default. The dokuwiki template keeps only its opacity hover behavior.
show more ...
|
| f6d39a6d | 01-Dec-2025 |
Andreas Gohr <gohr@cosmocode.de> |
do not wrap code blocks for copybutton #4534 |