Skip to main content

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:

Basic Example


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:

With Score


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:

Custom Styling


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:

Temporary Output


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 extraction
  • with_score.py - Adding scores to bounding boxes
  • custom_styling.py - Custom styling options

Advanced Usage:

  • batch_processing.py - Batch processing multiple files
  • component_usage.py - Using individual components
  • error_handling.py - Proper error handling

Command Line:

  • cli_basic.py - Basic CLI usage
  • cli_with_score.py - CLI with score display
  • cli_custom_styling.py - CLI with custom styling

Development

Setup

  1. Clone the repository:
git clone https://github.com/yourusername/markitdown-reference-image.git
cd markitdown-reference-image
  1. Install in development mode:
pip install -e .
  1. 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for your changes
  5. Run the test suite
  6. 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)

Source distribution for markitdown-reference-image 0.1.1
File Size Uploaded
markitdown_reference_image-0.1.1.tar.gz 35.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for markitdown-reference-image 0.1.1
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page