All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.1.0 - 2026-03-01
- Automatic FFmpeg detection and PATH configuration for audio file processing
- Improved error messages for audio transcription failures
.gitignorefile for proper version controlLICENSEfile (MIT License)ValidationErrorResponse.csmodel for structured validation errors- Known Limitations section in README documenting audio transcription constraints
- Moved
Install.ps1andREADME.mdto repository root Install.ps1now includes automatic FFmpeg installation (via winget, Chocolatey, or direct download)- Improved
start-dev.ps1with process management and browser auto-open
- FFmpeg path resolution when not in system PATH
- Audio file conversion by setting FFMPEG_BINARY environment variable
- FileSize property now properly set in ConvertFileCommand
- Unused
MarkItDownAPI/folder (old single-project structure) - Unused imports and code across all layers
ILoggerfromConvertController(logging handled by MediatR behaviors)DataAnnotationsfromUrlConversionRequest(using FluentValidation)
2.0.0 - 2025-02-28
- Clean Architecture project structure with separate layers:
MarkItDownAPI.Domain- Domain entities and enumsMarkItDownAPI.Application- CQRS commands, queries, handlers, and validatorsMarkItDownAPI.Infrastructure- Python.NET integration servicesMarkItDownAPI.Api- Controllers and API configuration
- CQRS pattern implementation using MediatR:
ConvertFileCommandfor file conversionConvertUrlCommandfor URL conversionGetSupportedFormatsQueryfor retrieving supported formatsHealthCheckQueryfor API health status
- FluentValidation for request validation with custom validators
- MediatR pipeline behaviors for logging and validation
- Serilog structured logging with file and console sinks
- Scalar API documentation (OpenAPI/Swagger alternative)
- Unit tests with xUnit, Moq, and FluentAssertions
- Comprehensive XML documentation in English
copilot-instructions.mdfor AI-assisted development guidelines
- Restructured from single-project to Clean Architecture
- All documentation converted to English
- ConversionResult changed from class to record type
- API now uses CQRS pattern instead of direct service calls
- Improved error handling with global exception middleware
- API response structure changed (use
IsSuccessinstead ofSuccess) - Project namespace changed to
MarkItDownAPI.*layers
1.0.0 - 2025-02-27
- Initial release with Python.NET integration
- File conversion to Markdown (PDF, DOCX, PPTX, XLSX, images, audio, etc.)
- URL conversion to Markdown (webpages, YouTube videos)
- Auto-detection of Python installation
- Install.ps1 script for automated setup
- start-dev.ps1 script for development workflow
- IIS hosting support
- Optional LLM-based image descriptions (OpenAI integration)
- Optional Azure Document Intelligence integration