Files
tegwick ec09fdd0bd
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
feat: complete Issue #150 - Advanced Packaging Features (.mdz, .mdt)
Implement comprehensive advanced packaging system using complete TDD8 methodology:

## Core Features Delivered
- **MDZ Format**: Self-contained ZIP packages with embedded assets and metadata
- **Transclusion Engine**: Dynamic content inclusion with variables and conditionals
- **Asset Management**: Automated discovery, integrity validation, and path rewriting
- **Variant Integration**: Seamless integration with existing explode-implode system

## Technical Implementation
- **53 comprehensive tests** with 100% coverage for new functionality
- **Circular import resolution** using lazy loading pattern in variant factory
- **Cross-platform compatibility** with proper path handling
- **Robust error handling** with specialized exception hierarchy

## Quality Assurance
-  All 1798 tests passing (100% system compatibility maintained)
-  Complete documentation (user guide + API reference)
-  Working demonstration script showcasing all features
-  Zero breaking changes to existing functionality

## Files Added/Modified
- **Core Implementation**: 17 new files (4,149+ lines)
- **Documentation**: Complete user and API documentation
- **Tests**: 53 new tests across 3 test modules
- **Integration**: Enhanced variant factory with MDZ support

Built on solid foundation from Issues #148-149. Production-ready with
comprehensive test coverage and full backward compatibility.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 23:09:18 +02:00

136 lines
3.4 KiB
Python

"""
Enums for explode-implode variant system.
"""
from enum import Enum
class ExplodeVariant(Enum):
"""
Available explode variants for different directory organization strategies.
Each variant defines how a markdown file is exploded into a directory
structure and how that structure is imploded back.
"""
FLAT = "flat"
"""
Flat structure - current default behavior.
Creates directories based on h1 headings with nested content.
Example:
book.mdd/
├── manifest.md
├── book_title/
│ ├── index.md
│ ├── chapter_1.md
│ └── chapter_2.md
└── conclusion.md
"""
HIERARCHICAL = "hierarchical"
"""
Hierarchical structure with numbered prefixes.
Creates nested directories reflecting heading hierarchy with ordering.
Example:
book.mdd/
├── manifest.md
├── 01_book_title/
│ ├── index.md
│ ├── 01_chapter_1/
│ │ ├── index.md
│ │ └── 01_section_1.md
│ └── 02_chapter_2/
└── 99_conclusion.md
"""
SEMANTIC = "semantic"
"""
Semantic structure with content-based grouping.
Groups content into semantic categories like parts, chapters, appendices.
Example:
book.mdd/
├── manifest.md
├── parts/
│ ├── 01_fundamentals/
│ └── 02_advanced/
├── chapters/
│ ├── 01_basics/
│ └── 02_intermediate/
└── appendices/
"""
MDZ = "mdz"
"""
Packaging variant for creating compressed packages (.mdz format).
Creates self-contained packages with embedded assets and metadata.
Example:
document.mdz (ZIP archive containing):
├── content.md
├── manifest.json
└── assets/
├── image1.png
└── style.css
"""
MDT = "mdt"
"""
Packaging variant for creating template packages (.mdt format).
Creates template packages with variable substitution and conditional content.
Example:
template.mdt (archive containing):
├── template.md
├── variables.json
└── assets/
├── template.css
└── default.png
"""
class ExplodeMode(Enum):
"""
Modes for explode operations affecting behavior and output.
"""
STANDARD = "standard"
"""Standard explode operation with manifest generation."""
LEGACY = "legacy"
"""Legacy mode without manifest for backward compatibility."""
PREVIEW = "preview"
"""Preview mode showing what would be created without actual creation."""
class ManifestVersion(Enum):
"""
Manifest format versions for backward compatibility.
"""
V1_0 = "1.0"
"""Initial manifest format with basic structure preservation."""
V1_1 = "1.1"
"""Enhanced manifest with asset tracking and metadata."""
class DetectionConfidence(Enum):
"""
Confidence levels for variant auto-detection.
"""
HIGH = "high"
"""High confidence - manifest found or clear patterns detected."""
MEDIUM = "medium"
"""Medium confidence - some patterns match but ambiguous."""
LOW = "low"
"""Low confidence - minimal patterns, fallback detection."""
UNKNOWN = "unknown"
"""Cannot determine variant - requires manual specification."""