tegwick
e46e97801d
feat: implement --emoji flag and MARKITECT_EMOJI environment variable - Issue #37
Add comprehensive emoji preference support to complement existing --ascii flag:
🎯 Core Features:
• Add --emoji flag to visualization tools (visualize_schema.py, schema_summary.py)
• Implement MARKITECT_EMOJI environment variable support
• Maintain backward compatibility with existing --ascii flag behavior
• Establish proper priority: CLI flags > environment variables > defaults
🏗️ Architecture:
• Create shared emoji_utils.py module for centralized logic
• Implement determine_output_mode() for standardized preference resolution
• Add add_emoji_arguments() for consistent argument parser setup
• Follow DRY principle - eliminate duplicate code between tools
🧪 Testing:
• 18 comprehensive tests covering all functionality
• Basic flag tests: existence, mutual exclusivity, defaults, precedence
• Environment variable tests: recognition, case handling, CLI overrides
• Configuration integration tests: system compatibility, error handling
• All 1337 project tests pass (no regressions)
💡 User Experience:
• Consistent behavior across all MarkiTect visualization tools
• Multiple preference setting methods (CLI flags, environment variables)
• Robust error handling with sensible defaults (emoji by default)
• Clear help documentation and discoverable usage patterns
🔧 Implementation Details:
• Mutually exclusive argument groups prevent conflicting flags
• Case-insensitive environment variable processing
• Valid false values: 'false', 'f', '0' - all others default to emoji
• Comprehensive documentation with usage examples
The implementation follows TDD principles and MarkiTect architectural
patterns, ensuring high quality and maintainability while delivering
enhanced usability features.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 17:46:54 +02:00
..
2025-10-02 00:45:06 +02:00
2025-09-29 12:18:25 +02:00
2025-10-02 09:32:16 +02:00
2025-09-27 02:14:23 +02:00
2025-09-29 12:18:25 +02:00
2025-10-06 02:11:28 +02:00
2025-10-04 02:33:48 +02:00
2025-09-26 22:36:35 +02:00
2025-10-06 16:46:26 +02:00
2025-10-02 15:33:32 +02:00
2025-10-02 09:14:24 +02:00
2025-10-04 01:31:36 +02:00
2025-10-04 01:31:36 +02:00
2025-10-04 01:31:36 +02:00
2025-10-05 14:05:48 +02:00
2025-10-01 21:05:36 +02:00
2025-09-22 02:04:19 +02:00
2025-10-04 01:31:36 +02:00
2025-10-02 09:14:24 +02:00
2025-10-01 21:05:36 +02:00
2025-09-30 03:31:48 +02:00
2025-09-30 03:31:48 +02:00
2025-10-01 21:05:36 +02:00
2025-10-01 21:05:36 +02:00
2025-10-03 11:58:42 +02:00
2025-10-03 16:48:03 +02:00
2025-09-22 02:04:19 +02:00
2025-10-03 10:45:43 +02:00
2025-10-03 10:53:44 +02:00
2025-10-03 11:29:49 +02:00
2025-10-06 17:46:54 +02:00
2025-10-06 17:46:54 +02:00
2025-10-06 17:46:54 +02:00
2025-10-01 21:05:36 +02:00
2025-09-30 23:33:43 +02:00
2025-09-30 13:09:37 +02:00
2025-10-01 12:48:48 +02:00
2025-10-01 18:07:05 +02:00
2025-10-01 08:25:08 +02:00
2025-10-01 02:59:40 +02:00
2025-10-01 08:03:11 +02:00
2025-10-01 08:24:39 +02:00
2025-10-01 12:48:48 +02:00
2025-10-01 12:13:43 +02:00
2025-10-02 00:45:06 +02:00
2025-10-06 02:11:28 +02:00
2025-10-03 01:48:03 +02:00
2025-10-02 00:45:06 +02:00
2025-10-02 15:33:32 +02:00
2025-10-02 15:33:32 +02:00
2025-10-02 15:33:32 +02:00
2025-10-03 17:03:11 +02:00
2025-10-04 03:14:04 +02:00
2025-10-05 00:31:10 +02:00
2025-10-06 02:11:28 +02:00
2025-10-05 13:59:33 +02:00
2025-10-04 03:52:06 +02:00
2025-10-05 00:31:10 +02:00
2025-09-29 12:18:25 +02:00
2025-09-29 12:18:25 +02:00
2025-10-01 21:05:36 +02:00
2025-10-01 21:05:36 +02:00
2025-09-29 12:18:25 +02:00
2025-09-29 12:18:25 +02:00
2025-09-29 12:18:25 +02:00
2025-09-29 12:18:25 +02:00
2025-09-29 12:18:25 +02:00
2025-09-30 23:33:43 +02:00
2025-10-06 16:46:26 +02:00
2025-10-06 16:46:26 +02:00
2025-09-30 23:33:43 +02:00
2025-10-01 21:05:36 +02:00
2025-09-29 12:18:25 +02:00
2025-10-03 05:37:17 +02:00
2025-09-30 22:13:07 +02:00
2025-10-01 21:05:36 +02:00
2025-09-30 23:33:43 +02:00
2025-09-29 12:18:25 +02:00
2025-09-29 12:18:25 +02:00
2025-09-29 12:18:25 +02:00
2025-09-29 12:18:25 +02:00
2025-09-29 12:18:25 +02:00
2025-10-05 12:49:28 +02:00
2025-10-02 00:45:06 +02:00
2025-10-04 01:41:58 +02:00
2025-10-04 01:41:58 +02:00
2025-10-04 01:53:31 +02:00
2025-10-04 01:53:31 +02:00
2025-10-03 23:06:57 +02:00
2025-10-03 05:37:17 +02:00