feat: comprehensive asset management system and testing improvements
Some checks failed
Test Suite / unit-tests (3.11) (push) Has been cancelled
Test Suite / unit-tests (3.12) (push) Has been cancelled
Test Suite / integration-tests (push) Has been cancelled
Test Suite / e2e-tests (push) Has been cancelled
Test Suite / performance-tests (push) Has been cancelled
Test Suite / code-quality (push) Has been cancelled
Test Suite / security-scan (push) Has been cancelled
Test Suite / test-summary (push) Has been cancelled

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>
This commit is contained in:
2025-10-12 19:57:31 +02:00
parent 88787d903d
commit 81d3da5fe7
19 changed files with 4040 additions and 84 deletions

View File

@@ -50,13 +50,14 @@ Detailed content here.
try:
# This should fail initially (RED phase)
structure = parse_markdown_structure(temp_file)
structure, front_matter = parse_markdown_structure(temp_file)
# Verify structure
assert len(structure) == 1 # One part
assert structure[0].level == 1
assert structure[0].title == "Part 1: Introduction"
assert len(structure[0].children) == 2 # Two chapters
assert front_matter is None # No front matter in this test
# Check chapters
assert structure[0].children[0].level == 2
@@ -154,12 +155,14 @@ Section content.
try:
# This should fail initially (RED phase)
structure = parse_markdown_structure(temp_file)
structure, front_matter = parse_markdown_structure(temp_file)
# Front matter should be handled appropriately
# Front matter should be extracted and structure parsed
assert len(structure) == 1
assert structure[0].title == "Chapter 1"
assert structure[0].level == 1
assert front_matter is not None
assert 'title: "My Document"' in front_matter
finally:
temp_file.unlink()
@@ -178,10 +181,11 @@ Some more content.
try:
# This should fail initially (RED phase)
structure = parse_markdown_structure(temp_file)
structure, front_matter = parse_markdown_structure(temp_file)
# Should return empty structure or handle gracefully
assert structure == [] or structure is None
assert structure == []
assert front_matter is None
finally:
temp_file.unlink()
@@ -204,10 +208,11 @@ Back to level 2.
try:
# This should fail initially (RED phase)
structure = parse_markdown_structure(temp_file)
structure, front_matter = parse_markdown_structure(temp_file)
# Should handle inconsistent levels gracefully
assert len(structure) == 1 # Main title
assert front_matter is None
assert structure[0].level == 1
assert len(structure[0].children) >= 1 # Should have children