Skip to main content

macOS clipboard tool that converts Markdown to Rich Text formatting

Project description

MD→RT (Markdown to Rich Text)

macOS Python Security Build Status PyPI version License: MIT

The easiest way to convert Markdown to Rich Text on macOS!

MD→RT automatically converts Markdown in your clipboard to Rich Text formatting. Copy from anywhere, paste anywhere - it's that simple!

🎯 Overview

MD→RT Logo

Transform your workflow with instant Markdown-to-Rich Text conversion

Perfect for developers, writers, and anyone who works with formatted text!

✨ Features

  • 🚀 Zero Setup: Install and run - no configuration needed
  • 📱 Menubar Integration: Runs quietly in your menu bar
  • 🔄 Real-time Monitoring: Watches your clipboard for Markdown content
  • 🎯 Smart Detection: Only converts actual Markdown, ignores plain text
  • 💾 Preserves Original: Keeps original text as fallback

🚀 Quick Start

Option 1: PyPI Install (recommended):

pipx run convert-md-to-rt

Available logging levels: --quiet, --verbose, --debug

Option 2: From Source:

git clone https://github.com/taazkareem/convert-md-to-rt.git && cd convert-md-to-rt && python3 -m src.md2rt.menubar

Note: Source installation requires rumps to be installed separately: pip install rumps

How to use:

  • Copy any Markdown text (like **bold** or # Heading)
  • Paste into rich text apps → you'll see formatting!
  • Paste into plain text apps → you'll see original Markdown!
  • Control via menu bar: Start/Stop/Quit

The app runs quietly in your menu bar and works automatically!

💡 Pro Use Case

  • Copy LLM outputs directly into ClickUp task descriptions with formatting
  • Easily send Apple Mail with checkmarked lists or code blocks
  • Many more

🛠️ Development

How It Works Under The Hood

MD→RT converts Markdown to Rich Text by:

  1. Detecting Markdown in clipboard using regex patterns
  2. Converting to HTML via external API and built-in parser
  3. Adding browser styling for consistent formatting
  4. Placing styled HTML in clipboard (preserving original Markdown)
  5. Rich Text apps render the HTML as formatted text

Note: End users see Rich Text, not HTML - the conversion is seamless.

Prerequisites

  • Python 3.9+
  • macOS (required for clipboard access)

Setup

# Clone the repository
git clone https://github.com/taazkareem/convert-md-to-rt.git
cd convert-md-to-rt

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Install development dependencies
pip install -e ".[dev]"

Running Tests

pytest

Project Structure

src/md2rt/
├── __init__.py
├── menubar.py          # Main menubar app (consolidated)
├── detector.py         # Markdown detection logic
├── converter.py        # Markdown to HTML conversion
├── clipboard.py        # Clipboard operations
└── runner.py           # Command-line runner

🤝 Contributing

This is an open-source project! Contributions are welcome:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

🙏 Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

convert_md_to_rt-0.0.0.tar.gz (33.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

convert_md_to_rt-0.0.0-py3-none-any.whl (37.9 kB view details)

Uploaded Python 3

File details

Details for the file convert_md_to_rt-0.0.0.tar.gz.

File metadata

  • Download URL: convert_md_to_rt-0.0.0.tar.gz
  • Upload date:
  • Size: 33.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for convert_md_to_rt-0.0.0.tar.gz
Algorithm Hash digest
SHA256 5657e832c566e0a463190ab51a82393866622bdf3ef254ea3e0d0e7f78d11b17
MD5 1b56034835d496c6a683ce22b139e5b4
BLAKE2b-256 4c7f210ff5bf7a1e14661a4aa1b7d8635b1c7f3bbbadbb814252478df6bf5473

See more details on using hashes here.

File details

Details for the file convert_md_to_rt-0.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for convert_md_to_rt-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cadd77207f9c77809924577fa2f2d77cdfaf309a848b449c6265f8e53f7e29b2
MD5 3359fc0fa5394c88e5c37893217b6775
BLAKE2b-256 0d964c7eaa12f0c40851d1025970224b31a0436116b724a9b52198471bc7f52f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page