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

@@ -88,7 +88,15 @@ LAYERED_THEMES = {
'editor_button_active': '#d4d4d4',
'editor_text_color': '#333333',
'editor_focus_color': '#666666',
'editor_shadow': 'rgba(0,0,0,0.15)'
'editor_shadow': 'rgba(0,0,0,0.15)',
'editor_accept_bg': '#888888',
'editor_accept_hover': '#777777',
'editor_cancel_bg': '#999999',
'editor_cancel_hover': '#808080',
'editor_reset_bg': '#aaaaaa',
'editor_reset_hover': '#999999',
'editor_secondary_bg': '#bbbbbb',
'editor_secondary_hover': '#aaaaaa'
}
},
'electric': {
@@ -101,7 +109,7 @@ LAYERED_THEMES = {
'editor_button_active': '#0099ff',
'editor_text_color': '#00ffff',
'editor_focus_color': '#ffff00',
'editor_shadow': 'rgba(0,255,255,0.3)'
'editor_shadow': '0 0 20px rgba(0,255,255,0.5), 0 0 40px rgba(255,255,0,0.2)'
}
},
'psychedelic': {
@@ -1938,9 +1946,11 @@ def md_list_command(ctx, output_format, names_only):
help='Use publication directory for output')
@click.option('--dont-use-publication-dir', is_flag=True,
help='Don\'t use publication directory for output')
@click.option('--nodogtag', is_flag=True,
help='Don\'t add HTML generation dogtag at end of document')
@click.pass_context
def md_render_command(ctx, input_file, output, theme, css, edit, editor_theme,
keyboard_shortcuts, use_publication_dir, dont_use_publication_dir):
keyboard_shortcuts, use_publication_dir, dont_use_publication_dir, nodogtag):
"""
Render a markdown file to HTML with basic templates and live preview capabilities.
@@ -1990,7 +2000,8 @@ def md_render_command(ctx, input_file, output, theme, css, edit, editor_theme,
template=theme, css=css,
edit_mode=True,
editor_theme=editor_theme,
keyboard_shortcuts=keyboard_shortcuts)
keyboard_shortcuts=keyboard_shortcuts,
nodogtag=nodogtag)
click.echo(f"✓ Rendered with interactive editing capabilities to: {output_path}")
@@ -2002,7 +2013,8 @@ def md_render_command(ctx, input_file, output, theme, css, edit, editor_theme,
else:
# Static render
result = doc_manager.render_file(input_file, str(output_path),
template=theme, css=css)
template=theme, css=css,
nodogtag=nodogtag)
click.echo(f"✓ Rendered to: {output_path}")
if config.get('verbose', False):