| /plugin/annotations/_test/ |
| H A D | GeneralTest.php | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| H A D | HelperTest.php | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| /plugin/annotations/lang/ja/ |
| H A D | lang.php | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| /plugin/annotations/lang/ru/ |
| H A D | lang.php | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| /plugin/annotations/lang/de/ |
| H A D | lang.php | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| /plugin/annotations/lang/en/ |
| H A D | lang.php | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| /plugin/annotations/ |
| H A D | plugin.info.txt | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| H A D | DESIGN.md | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| H A D | README.md | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| H A D | action.php | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| H A D | helper.php | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| H A D | script.js | da56206cc13612db0df36be97c0f01d8f3c5e9f4 Tue Jun 02 16:47:05 UTC 2026 tracker-user <82045103+tracker-user@users.noreply.github.com> Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|