A cross-platform GUI application for converting documents to Markdown.
Features
- Drag & Drop: Simply drag files into the application
- Multiple Formats: Supports DOCX, PDF, PPTX, XLSX, HTML, and more
- Two Engines: Uses Pandoc and MarkItDown for best results per format
- Smart Defaults: Automatically selects the best engine for each file type
- Customizable: Override engine selection per file type in preferences
- Cross-Platform: Works on Linux, Windows, and macOS
Supported Formats
| Format | Default Engine | Description |
|---|---|---|
| DOCX | Pandoc | Microsoft Word documents |
| Pandoc | PDF documents | |
| PPTX | MarkItDown | PowerPoint presentations |
| XLSX | MarkItDown | Excel spreadsheets |
| HTML | Pandoc | Web pages |
| RTF | Pandoc | Rich Text Format |
| ODT | Pandoc | OpenDocument Text |
| EPUB | Pandoc | E-books |
| CSV | MarkItDown | Comma-separated values |
| JSON | MarkItDown | JSON data |
| XML | MarkItDown | XML data |
Installation
From Source
-
Clone the repository:
git clone https://github.com/yourusername/xtomarkdown.git cd xtomarkdown -
Create a virtual environment:
python -m venv venv source venv/bin/activate # Linux/macOS # or venv\Scripts\activate # Windows
-
Install dependencies:
pip install -e . -
Run the application:
xtomarkdown # or python -m xtomarkdown
Development
Install with development dependencies:
pip install -e ".[dev]"Run tests:
pytest
Usage
- Add Files: Drag files into the drop zone or click to browse
- Select Output: Choose where to save converted files
- Same folder as source
- A specific folder
- Ask each time
- Convert: Click "Convert to Markdown"
Preferences
Access preferences to:
- Set default output location
- View installed engines
- Override engine selection per file type
- Reset all settings to defaults
Configuration
Settings are stored in:
- Linux:
~/.config/xtomarkdown/settings.json - macOS:
~/Library/Application Support/xtomarkdown/settings.json - Windows:
%LOCALAPPDATA%\xtomarkdown\settings.json
Building Standalone Executables
Using PyInstaller:
pip install pyinstaller pyinstaller --onefile --windowed src/xtomarkdown/app.py --name xtomarkdown
License
MIT License - see LICENSE file for details.
Credits
- Pandoc - Universal document converter
- MarkItDown - Microsoft's document to Markdown converter
- PySide6 - Qt for Python