1.0.10
Re-Supercharged Links — Runtime Unification & Performance Cleanup
This release delivers a focused internal refactor aimed at improving consistency, reducing redundant logic, and stabilizing observer behavior across views.
Highlights
- Unified rule matching into a shared resolver used across rendering paths
- Reduced duplicated styling/matching logic between Live Preview and Read Mode
- Added observer deduplication safeguards to prevent duplicate registrations
- Consolidated rule reordering into one shared engine
- Refactored visible-link updates into smaller, testable routines
- Performed targeted cleanup of transitional/legacy wiring after migration
What changed
1) Unified rule resolution
A new centralized rule-resolution routine now handles matching and style aggregation in a deterministic way.
This reduces drift between rendering contexts and makes future optimizations easier.
Included behavior:
- Tag/path/attribute matching
- Color/background/font style resolution
- Icon before/after resolution
- Data attribute export for downstream consumers
2) Live Preview + Read Mode parity improvements
Both Live Preview decoration flow and Read Mode DOM mutation flow were aligned to the same resolution model.
Result: more consistent visual output across editor and rendered views.
3) Observer deduplication and lifecycle hardening
Observer registration logic was tightened to avoid duplicate observers during repeated layout/window cycles.
- Container observers are now deduplicated by container + logical key
- Modal observers are deduplicated per
Document - Disconnect paths reset plugin-level observer lists to avoid stale references
4) Rule reorder consolidation
Rule movement logic was consolidated into a shared rule-order-engine routine.
- Preserves existing row animation
- Keeps active edit index synchronized during swaps
- Removes duplicated reorder logic in settings tab code
5) Update flow refactor (no intended behavior change)
updateVisibleLinks was split into focused helper routines:
- properties pane updates
- tab header updates
- internal link updates
This is a maintainability refactor to make incremental testing and debugging simpler.
6) Cleanup
Post-migration cleanup removed redundant wiring and reduced technical debt while preserving runtime behavior.
Why this release matters
This release is primarily about long-term reliability and performance stability:
- Fewer duplicated rule engines to maintain
- Lower risk of inconsistent match behavior across contexts
- Better observer hygiene under repeated layout or window events
- Cleaner structure for upcoming feature work and optimization passes
Compatibility notes
- No intentional user-facing configuration changes
- Existing style rules/settings should continue to work as before
- If you rely on third-party view integrations, please report regressions with reproduction steps
Recommended quick verification after update
- Reload plugin
- Verify rule styling in Live Preview and Read Mode
- Test quick switcher / suggestion popups
- Reorder rules up/down in settings
- Restart Obsidian and confirm settings persistence