| #
21d6f176
|
| 05-Jul-2026 |
Andreas Gohr <andi@splitbrain.org> |
fix(parser): restore BC for manual Handler/Parser construction
The parser rework made ModeRegistry a required constructor argument on Handler and Parser and dropped the Doku_Parser class alias, brea
fix(parser): restore BC for manual Handler/Parser construction
The parser rework made ModeRegistry a required constructor argument on Handler and Parser and dropped the Doku_Parser class alias, breaking the long-documented manual sub-parsing pattern used by many plugins (new Doku_Handler(); new Parser($handler); ...): both threw ArgumentCountError and new Doku_Parser() fatalled as an unknown class.
Default the ModeRegistry argument on both constructors: Handler builds a registry for the configured syntax, Parser takes it from the handler. Re-add the Doku_Parser alias. Constructing without a registry emits a deprecation pointing at p_get_instructions().
show more ...
|
| #
b73ece99
|
| 10-Jun-2026 |
Andreas Gohr <andi@splitbrain.org> |
Merge branch 'master' into gfm
* master: Rector and PHPCS fixes Update deleted files Make common_pageinfo tests independent of execution order Translation update (sk) chore: adjust o
Merge branch 'master' into gfm
* master: Rector and PHPCS fixes Update deleted files Make common_pageinfo tests independent of execution order Translation update (sk) chore: adjust overlong line fix(auth): scope media ACL checks to the namespace refactor(search): extract LegacyIndexer wrapper for BC contract Translation update (ro) fix(authad): avoid warning when initAdLdap is called before opts is populated fix(infoutils): fix synology os-release file parsing remove valid_input_set(), inline the only remaining callers Update copyright year in README fix(mail): keep '&' intact in mailto links with multiple query params
# Conflicts: # inc/Parsing/ParserMode/Internallink.php
show more ...
|
| #
e7dae73b
|
| 12-May-2026 |
Andreas Gohr <andi@splitbrain.org> |
fix: apply rector and code sniffer fixes
|
| #
73dc0a89
|
| 06-May-2026 |
Andreas Gohr <andi@splitbrain.org> |
fix(mail): keep '&' intact in mailto links with multiple query params
Move the email-handling helpers (obfuscate, mail_isvalid, mail_quotedprintable_encode, mail_setup) out of the procedural inc/mai
fix(mail): keep '&' intact in mailto links with multiple query params
Move the email-handling helpers (obfuscate, mail_isvalid, mail_quotedprintable_encode, mail_setup) out of the procedural inc/mail.php into a namespaced dokuwiki\MailUtils class plus a new Mailer::configInit(), and add a separate MailUtils::obfuscateUrl() for the mailto-href context.
The xhtml renderer and PluginTrait now build the link label and the href separately: the address half is run through the mailguard obfuscation, the query string is preserved verbatim with only HTML escaping applied. This fixes #1690 — in 'visible' mode the previous code rawurlencoded the entire address+query, turning '?' into '%3F' and breaking multi-parameter mailto links; in all modes the query string is no longer mangled by the [at]/[dot] substitution.
Core call sites (Mailer, auth, LegacyApiCore, common, the xhtml renderer, the parser, the bundled config/styling/usermanager plugins) are migrated to MailUtils directly. The old top-level functions and PREG_PATTERN_VALID_EMAIL constant remain as deprecated shims with rector mappings.
Tests for obfuscate / mail_isvalid / mail_quotedprintable_encode are consolidated into a single _test/tests/MailUtilsTest.php and extended with regression coverage for the multi-parameter, double-escape and URL-shape cases.
Closes #1690 Replaces #1964
show more ...
|
| #
71096e46
|
| 18-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
move handler methods into ParserMode classes and rename Handler
Each ParserMode class now implements handle() from ModeInterface, containing the token handling logic that previously lived as individ
move handler methods into ParserMode classes and rename Handler
Each ParserMode class now implements handle() from ModeInterface, containing the token handling logic that previously lived as individual methods on Doku_Handler.
The Handler class (formerly Doku_Handler) is the single dispatch point: Lexer passes tokens to Handler::handleToken() which routes to mode objects, plugins, or returns false. The Lexer only tokenizes and resolves mapHandler aliases.
Key changes: - Add handle() to ModeInterface, implemented by all mode classes - Move Doku_Handler to dokuwiki\Parsing\Handler namespace - File extends Code (shared parsing via $type property) - Quotes uses mapHandler() + Handler::getModeName() for sub-modes - Media::parseMedia() replaces Doku_Handler_Parse_Media() - Code::parseHighlightOptions() replaces parse_highlight_options() - Per-parse state (footnote, doublequote) stays on Handler - Deprecated wrappers kept for base/header/internallink/media - Class alias and rector rules added for backward compatibility
show more ...
|
| #
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
|
| #
093fe67e
|
| 07-Mar-2026 |
Andreas Gohr <andi@splitbrain.org> |
updated rector and applied it
|
| #
2e0b7f74
|
| 02-Sep-2025 |
Andreas Gohr <gohr@cosmocode.de> |
set DOKU_INC in rector
I had several cases where rector failed to work on plugins without this. I'm not 100% sure why, but it doesn't hurt to set this early.
|
| #
8b9fc108
|
| 02-Dec-2024 |
Andreas Gohr <andi@splitbrain.org> |
skip buggy rector rule
see rectorphp/rector#8916
|
| #
1e467458
|
| 02-Dec-2024 |
Andreas Gohr <andi@splitbrain.org> |
skip two more rules from rector
|
| #
93aadb6c
|
| 02-Dec-2024 |
Andreas Gohr <andi@splitbrain.org> |
update rector to 1.2
Some of our skipped rules no longer exist or apply. Next auto-cleanup should be checked extra careful
|
| #
ed46af86
|
| 27-Mar-2024 |
Andreas Gohr <andi@splitbrain.org> |
disable RemoveUnusedConstructorParamRector
At least until rectorphp/rector#8580 is fixed
|
| #
462a5601
|
| 10-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
tune parallel tasks in rector
The default options for running paralell rector tasks changed in 0.19 resulting in failures on github runners.
See also https://github.com/rectorphp/rector/issues/8396
|
| #
05fd0e83
|
| 10-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
update rector
|
| #
9b944650
|
| 07-Dec-2023 |
Anna Dabrowska <dabrowska@cosmocode.de> |
Upgrade rector to 0.18.12
Two classes in DokuWiki's skip rules were removed from rector in 0.18.12
|
| #
108f17cf
|
| 13-Nov-2023 |
Andreas Gohr <andi@splitbrain.org> |
updated devel dependencies
|
| #
1fc5061d
|
| 02-Nov-2023 |
Andreas Gohr <andi@splitbrain.org> |
skip CompleteMissingIfElseBracketRector
We like our one-line guardians.
See discussion in https://github.com/dokuwiki/dokuwiki/pull/4097#issuecomment-1788608355 https://github.com/dokuwiki/dokuwiki
skip CompleteMissingIfElseBracketRector
We like our one-line guardians.
See discussion in https://github.com/dokuwiki/dokuwiki/pull/4097#issuecomment-1788608355 https://github.com/dokuwiki/dokuwiki/pull/4097#issuecomment-1789826392
show more ...
|
| #
bac51761
|
| 04-Sep-2023 |
Andreas Gohr <andi@splitbrain.org> |
rector env var might be empty -> ignore
|
| #
26586410
|
| 03-Sep-2023 |
Andreas Gohr <andi@splitbrain.org> |
allow overriding the minimum PHP release for rector
By setting the environment variable RECTOR_MIN_PHP the supported minimum PHP release can be set. This is needed to make plugin changes compatible
allow overriding the minimum PHP release for rector
By setting the environment variable RECTOR_MIN_PHP the supported minimum PHP release can be set. This is needed to make plugin changes compatible with DokuWiki stable.
show more ...
|
| #
80d85403
|
| 31-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
added rectors for new polyfills
We can use the PHP8 rector classes for the polyfills introduced in a4c648fffdf5bc5db83c9aa9c6c4bf5fb5edc85f
|
| #
26dfc232
|
| 31-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
Rector to rename print to echo calls
|
| #
f9a94e78
|
| 31-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
deprecate ptln()
This method was used to ensure some basic readability in the created HTML sources long before Firebug and later the builtin inspector tools in browsers pretty printed the HTML for y
deprecate ptln()
This method was used to ensure some basic readability in the created HTML sources long before Firebug and later the builtin inspector tools in browsers pretty printed the HTML for you. Today, this is no longer needed.
This adds a custom rector rule to automatically change all occurances to echo statements.
show more ...
|
| #
a0aeafaa
|
| 30-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
define custom renames
Automatically rename occurances of deprecated functions and classes. These renames will come in even more handy when rector is applied to 3rd party plugins.
|
| #
b1f206e1
|
| 30-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
Apply rector fixes to bin and toplevel
|
| #
74981a4e
|
| 30-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
apply PSR-12 constant visibility rule
PSR-12 says constants need their visibility declared from PHP 7.1 onwards
|