Markitdown Reference Image
A Python package for extracting images from markdown files and highlighting specific text chunks with bounding boxes.
Features
- Find specific text chunks in markdown content
- Convert markdown to HTML and capture as image
- Draw bounding boxes around found text chunks
- Optionally add scores to the bounding boxes
- Save processed images to specified paths or temporary files
Installation
pip install markitdown-reference-image
Usage
Basic Usage
Extract and highlight text from a markdown file:
from markitdown_reference_image import MarkitdownImageExtractor
# Initialize the extractor
extractor = MarkitdownImageExtractor()
# Extract image with highlighted text
image_path = extractor.extract_with_highlight(
markdown_file="test_document.md",
chunk_text="important information that we want to highlight",
output_path="assets/example_basic.png",
score=0.95
)
print(f"Image saved to: {image_path}")
Result:
With Score Display
Add a similarity score to show retrieval confidence (great for RAG systems):
image_path = extractor.extract_with_highlight(
markdown_file="test_document.md",
chunk_text="Text Finding: Find specific text chunks in markdown content",
output_path="assets/example_with_score.png",
score=0.88 # RAG similarity score
)
Result:
Custom Styling
Customize colors and appearance to match your brand:
image_path = extractor.extract_with_highlight(
markdown_file="test_document.md",
chunk_text="Image Extraction",
output_path="assets/example_custom_styling.png",
score=0.92,
box_color=(0, 255, 0), # Green box
box_width=5, # Thicker border
score_color=(255, 255, 0), # Yellow text
score_bg_color=(0, 128, 0) # Dark green background
)
Result:
Using Temporary Output
No output path? No problem - a temporary file is created:
# Temporary file will be created automatically
image_path = extractor.extract_with_highlight(
markdown_file="test_document.md",
chunk_text="visual references from markdown"
# No output_path specified - uses temporary file
)
print(f"Temporary image: {image_path}")
# Example: /tmp/tmp8x3k9m2p.png
Result:
Command Line Interface
Quick testing and automation via CLI:
# Basic usage
markitdown-extract test_document.md "important information" -o output.png
# With score
markitdown-extract test_document.md "Text Finding" -o output.png -s 0.88
# Custom styling
markitdown-extract test_document.md "Image Extraction" \
-o output.png \
-s 0.92 \
--box-color 0 255 0 \
--box-width 5 \
--score-color 255 255 0 \
--score-bg-color 0 128 0
Examples
The package includes comprehensive examples in the markitdown_reference_image/examples/ directory:
Quick Example Runner
python run_examples.py
Individual Examples
# Basic usage examples
python -m markitdown_reference_image.examples.basic_extraction
python -m markitdown_reference_image.examples.with_score
python -m markitdown_reference_image.examples.custom_styling
# Advanced usage examples
python -m markitdown_reference_image.examples.batch_processing
python -m markitdown_reference_image.examples.component_usage
python -m markitdown_reference_image.examples.error_handling
# Command-line examples
python -m markitdown_reference_image.examples.cli_basic
python -m markitdown_reference_image.examples.cli_with_score
python -m markitdown_reference_image.examples.cli_custom_styling
Available Examples:
Basic Usage:
basic_extraction.py- Basic image extractionwith_score.py- Adding scores to bounding boxescustom_styling.py- Custom styling options
Advanced Usage:
batch_processing.py- Batch processing multiple filescomponent_usage.py- Using individual componentserror_handling.py- Proper error handling
Command Line:
cli_basic.py- Basic CLI usagecli_with_score.py- CLI with score displaycli_custom_styling.py- CLI with custom styling
Development
Setup
- Clone the repository:
git clone https://github.com/yourusername/markitdown-reference-image.git
cd markitdown-reference-image
- Install in development mode:
pip install -e .
- Install development dependencies:
pip install -r requirements-dev.txt
Running Tests
pytest
Code Formatting
black .
Linting
flake8 .
mypy .
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for your changes
- Run the test suite
- Submit a pull request
Changelog
See CHANGELOG.md for a list of changes.
Metadata
Release files for markitdown-reference-image 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| markitdown_reference_image-0.1.1.tar.gz | 35.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| markitdown_reference_image-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 77.4 kB
Release files / markitdown_reference_image-0.1.1.tar.gz
| Download URL | markitdown_reference_image-0.1.1.tar.gz |
|---|---|
| Size | 35.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
66613e0d98b49bcf1971a5c9327b4df4b11face53d4dfef1b870d5e0217204df
|
|
BLAKE2b-256 checksum How to use checksums |
3db68e0b7a62be424206d818f6935d9a6b21decb6a788f32a239092528207daf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 24, 2025.
Transparency logRelease files / markitdown_reference_image-0.1.1-py3-none-any.whl
| Download URL | markitdown_reference_image-0.1.1-py3-none-any.whl |
|---|---|
| Size | 42.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd1d70e0d7dc216ea798ca5e015fbf44d6137d4584bea2f313515abbc8f95f65
|
|
BLAKE2b-256 checksum How to use checksums |
947b66e174f98023da117bc936bfa099fa801c6dcefd4a6b554e3689d4cd64b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 24, 2025.
Transparency log