This commit provides complete front matter support and fixes unicode character
handling across all explode-implode variants (flat, hierarchical, semantic).
## Front Matter Implementation
- Added FrontmatterParser integration to all three variants
- Extract front matter during explosion to `_frontmatter.yml` files
- Restore front matter during implosion by prepending to content
- Support for YAML front matter with proper type preservation
- Handles strings, arrays, dates, and other YAML data types
## Unicode Character Fixes
- Fixed filename sanitization inconsistency in flat variant
- Used consistent `_sanitize_filename()` method for both file creation and manifest paths
- Resolved issue where unicode characters in headings caused empty reconstructed files
- Ensured proper handling of emojis and special characters in content
## CLI Integration
- Updated CLI implode command to use variant system instead of legacy concatenation
- Fixed default output file naming to use `_imploded.md` suffix
- Enhanced DocumentManager with missing `get_file` method for database integration
- Improved processing info and preview support for dry-run mode
## Test Coverage
- Reactivated `test_issue_149_roundtrip_validation.py` front matter test
- Updated tests to use semantic equivalence checking instead of exact string matching
- Fixed all 3 failing tests in `test_roundtrip_consolidated.py`
- All 10 roundtrip tests and 11 Issue #149 validation tests now pass
## Technical Improvements
- Better content normalization with preserved internal structure
- Enhanced recursive directory processing for deep nesting scenarios
- Fixed variable naming conflicts in variant file creation logic
- Improved error handling and graceful fallbacks for front matter processing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major improvements to Issues #138, #139, and #140 with comprehensive
decoupled functionality approach:
## Issues Resolved
- Issue #138: Complete markdown parsing, directory creation, filename generation
- Issue #139: Full CLI integration, content aggregation, directory analysis,
end-to-end roundtrip testing, filename decoding system
- Issue #140: Fixed critical CLI parameter passing bug in roundtrip tests
## Key Features Added
- Comprehensive filename decoding system with special character restoration
- API version pattern handling (api_v2_1_reference.md → API v2.1: Reference)
- Smart title case with acronym recognition (API, SQL, HTTP, etc.)
- Enhanced roundtrip compatibility between explode/implode operations
- Front matter preservation through _frontmatter.yml files
- FilenameDecoder class for configurable batch processing
## Bug Fixes
- Fixed ImplodeOptions parameter passing in md_implode_command
- Corrected heading level preservation in roundtrip cycles
- Fixed README.md inclusion for roundtrip compatibility
- Enhanced pattern matching order to prevent conflicts
## Test Results
- All Issue #139 filename decoding tests: 18/18 passing ✅
- All Issue #140 roundtrip tests: 4/4 passing ✅
- Comprehensive test coverage for all new functionality
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Asset Management System (Issue #142):
- Add complete asset management framework with deduplication
- Implement AssetManager, AssetRegistry, and AssetDeduplicator classes
- Add AssetPackager for markdown document packaging
- Create comprehensive test suite for all asset management components
- Add asset constants and custom exceptions for robust error handling
Markdown Processing Enhancements:
- Update markdown_commands.py with improved functionality
- Enhanced parsing and content aggregation capabilities
- Improved filename encoding/decoding for special characters
Test Suite Improvements:
- Add comprehensive tests for Issue #138 markdown parsing
- Enhance Issue #139 content aggregation and end-to-end testing
- Complete test coverage for new asset management features
Examples and Documentation:
- Update BildungsKanonJon.md example with enhanced content
- Generate corresponding HTML output for documentation
- Add asset registry configuration
Development Tools:
- Add install script for simplified setup
This commit represents a major enhancement to MarkiTect's asset handling
capabilities with full test coverage and improved markdown processing.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Complete TDD8 implementation of index page generation functionality:
Core Features:
- HTML file discovery with optional recursive search (find_html_files)
- Smart title extraction from <title>, <h1>, or filename (extract_html_title)
- Template-integrated index page generation (generate_index_html)
- CLI command 'md-index' with output, template, and recursive options
- Comprehensive error handling for edge cases and malformed files
Implementation Details:
- Reuses existing TEMPLATE_STYLES for consistent styling across all templates
- Proper relative path resolution for cross-directory navigation
- Modular design with helper functions for maintainability
- HTML parsing patterns extracted as module-level constants for performance
Tests: 23 comprehensive tests covering discovery, generation, CLI integration, and edge cases
Files: markitect/plugins/builtin/markdown_commands.py, tests/test_issue_136_index_generation.py
Status: All tests passing, full TDD8 cycle completed (RED→GREEN→REFACTOR→DOCUMENT)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Complete TDD8 implementation of publication directory support for md-render command:
CORE FEATURES:
• Publication directory management with ~/Notes/ default
• MARKITECT_PUBLICATION_DIR environment variable override
• Single file processing with --use-publication-dir flag
• Directory processing with --dont-use-publication-dir flag
• Recursive directory traversal with structure preservation
• Automatic directory creation and path normalization
IMPLEMENTATION DETAILS:
• Extended md-render command with new CLI flags
• Added 9 new helper functions for directory/file processing
• Support for both single files and directory inputs
• Comprehensive error handling and validation
• Maintains backward compatibility
CLI FLAGS ADDED:
• --use-publication-dir: Force single files to use publication directory
• --dont-use-publication-dir: Force directory processing to place HTML next to MD
BEHAVIOR:
• Single files: HTML next to MD by default, publication dir with flag
• Directories: HTML in publication dir by default, next to MD with flag
• Environment variable MARKITECT_PUBLICATION_DIR overrides default
TESTING:
• 18 comprehensive tests covering all functionality
• Publication directory management (4 tests)
• Single file processing (3 tests)
• Directory processing (4 tests)
• CLI integration (4 tests)
• Edge cases (3 tests)
• 100% test pass rate
TDD8 Workflow: ISSUE→TEST→RED→GREEN→REFACTOR→DOCUMENT→REFINE→PUBLISH
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Add --edit flag to md-render command enabling client-side editing
* Add --editor-theme and --keyboard-shortcuts options
* Implement comprehensive MarkitectEditor JavaScript class
* Add floating header with change tracking and save functionality
* Support section-based editing with live preview comparison
* Include CSS styling for editing interface components
* Maintain full backward compatibility without --edit flag
* Add extensive test coverage (45 tests across 3 test files)
* Support all template types: basic, github, academic, dark
* Enable responsive design and mobile compatibility
TDD8 Workflow: ISSUE→TEST→RED→GREEN→REFACTOR→DOCUMENT→REFINE→PUBLISH
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add comprehensive client-side markdown rendering functionality with dark theme support:
Core Features:
- md-render command generates self-contained HTML files
- Embedded markdown payload with client-side JavaScript rendering
- marked.js integration from CDN with graceful fallback
- YAML front matter support and title extraction
Template System:
- 4 responsive templates: basic (default), github, academic, dark
- Dark theme with GitHub dark mode inspired colors
- Custom CSS injection capability
- Mobile-responsive design with viewport support
Implementation Details:
- Complete TDD8 workflow: ISSUE→TEST→RED→GREEN→REFACTOR→DOCUMENT→REFINE→PUBLISH
- 11+ comprehensive test scenarios with excellent coverage
- Refactored template system using style dictionaries
- Enhanced CLI help text with usage examples
- Clean code organization and documentation
Usage:
markitect md-render README.md --template dark
markitect md-render article.md --template github --css custom.css
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>