feat: complete clean editor implementation with comprehensive UI framework

Major architectural improvements and feature enhancements:

## Core Features Added
-  Custom status modal system replacing browser alerts with theme-consistent branding
-  HTML generation dogtag with timestamp and username linking
-  All document links now open in new tabs without triggering edit mode
-  Comprehensive UI framework documentation (UserInterfaceFramework.md)

## Architecture Improvements
- 🔧 Complete cleanup of document_manager.py - removed 2000+ lines of legacy code
- 🔧 Clean wrapper implementation maintaining backward compatibility
- 🔧 Enhanced database integration with proper front matter parsing
- 🔧 Improved AST processing and cache file generation

## UI/UX Enhancements
- 🎨 Theme-aware modal dialogs with proper CSS styling and accessibility
- 🎨 Consistent CSS class naming conventions across all UI components
- 🎨 Enhanced link behavior for better document navigation
- 🎨 Professional status information display

## Developer Experience
- 📝 Comprehensive UI component documentation for future development
- 🧪 Updated test suite to work with clean implementation
- 🧪 Fixed multiple test compatibility issues
- 🧪 Enhanced error handling and validation

## Technical Details
- Added store_document method to CleanDocumentManager
- Enhanced ingest_file method with proper title extraction
- Implemented theme-consistent modal overlay patterns
- Added --nodogtag CLI option for clean output when needed
- Fixed CSS escape sequences and JavaScript syntax issues

This release establishes a solid foundation for the clean editor architecture
while maintaining full backward compatibility with existing functionality.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-28 03:50:21 +01:00
parent 3e16793615
commit 86689c451c
9 changed files with 879 additions and 2300 deletions

View File

@@ -74,7 +74,7 @@ This is a **test** document with some *italic* text and a [link](https://example
from click.testing import CliRunner
runner = CliRunner()
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file)])
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file), '--nodogtag'])
# Should execute successfully
assert result.exit_code == 0
@@ -99,7 +99,7 @@ This is a **test** document with some *italic* text and a [link](https://example
from click.testing import CliRunner
runner = CliRunner()
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file)])
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file), '--nodogtag'])
assert result.exit_code == 0
assert output_file.exists()
@@ -128,7 +128,7 @@ This is a **test** document with some *italic* text and a [link](https://example
from click.testing import CliRunner
runner = CliRunner()
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file)])
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file), '--nodogtag'])
assert result.exit_code == 0
assert output_file.exists()
@@ -155,7 +155,7 @@ This is a **test** document with some *italic* text and a [link](https://example
from click.testing import CliRunner
runner = CliRunner()
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file)])
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file), '--nodogtag'])
assert result.exit_code == 0
assert output_file.exists()
@@ -185,7 +185,7 @@ This is a **test** document with some *italic* text and a [link](https://example
from click.testing import CliRunner
runner = CliRunner()
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file)])
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file), '--nodogtag'])
# Should handle empty file gracefully
assert result.exit_code == 0
@@ -221,7 +221,7 @@ And some inline `code` too.
from click.testing import CliRunner
runner = CliRunner()
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file)])
result = runner.invoke(md_render_command, [str(input_file), '--output', str(output_file), '--nodogtag'])
assert result.exit_code == 0
assert output_file.exists()