🛡️ Excalink Plugin v1.0.1 - Security & Quality Update
Release Overview
Version 1.0.1 addresses critical security concerns and code quality improvements identified during the Obsidian Community Plugin review process. This update ensures the plugin meets all Obsidian plugin development guidelines.
🔧 Bug Fixes & Security Updates
Security Enhancements
- 🛡️ HTML Security: Replaced all
innerHTMLusage with safe DOM API methods (textContent,createEl())- Fixed potential XSS vulnerabilities in
FrameSuggestModal.ts - Fixed HTML injection risks in
ExcalinkSettingTab.ts - All user content now safely rendered using Obsidian's DOM helpers
- Fixed potential XSS vulnerabilities in
Styling Improvements
- 🎨 CSS Refactoring: Moved all inline styles to
styles.cssfor better theme compatibility- Removed
styleproperty assignments from JavaScript - Added proper CSS classes:
.excalink-description,.excalink-plugin-info,.modal-button-container - Better integration with Obsidian themes and user customizations
- Removed
Performance Optimizations
- 🚀 Console Cleanup: Significantly reduced console logging to prevent dev console pollution
- Removed excessive debug statements that were active in production
- Kept only critical error logging and user-controlled debug output
- Added
DebugLoggerutility for conditional logging based on user settings
Code Quality
- ✨ Best Practices: Enhanced adherence to Obsidian plugin development guidelines
- Improved security posture with safe DOM manipulation
- Better separation of concerns with CSS-based styling
- Cleaner development experience with reduced console noise
📋 Files Changed
FrameSuggestModal.ts- Security fixes for DOM manipulationExcalinkSettingTab.ts- HTML security and CSS refactoringmain.ts- Console logging cleanupstyles.css- New CSS classes for moved inline stylesDebugLogger.ts- New utility for conditional logging (NEW FILE)manifest.json- Version bump to 1.0.1package.json- Version bump to 1.0.1versions.json- Added 1.0.1 compatibility entryREADME.md- Updated changelog
🔄 Migration Notes
This update is fully backward compatible. No user action required:
- All existing settings are preserved
- Plugin functionality remains unchanged
- Visual appearance may have minor improvements due to better CSS structure
- Debug output is now controlled by the "Enable Debug Logging" setting
🎯 What's Next
- Awaiting community plugin review approval
- Planning additional features based on user feedback
- Continued performance and security improvements
✅ Testing
- All functionality tested with the security and styling changes
- No breaking changes to user workflows
- Console logging verified to be minimal in production use
Download: Available from GitHub Releases
Compatibility: Obsidian 0.15.0+