Releases: mococouo/2markdown
2Markdown v0.2.1 - Desktop UI Polish
Desktop-focused release: adds the one-click 2Markdown.pyw launcher, redesigned single input area, dark mode, page scrolling, refreshed typography, simplified output selection, and removes the visible log panel. Validation: py_compile passed; 51 unit tests passed.
2Markdown v0.2.0 - First Public Beta
2Markdown v0.2.0 - First Public Beta
2Markdown is a local batch converter for turning common files into Obsidian-ready Markdown notes.
This is the first public beta release. It is designed for people who have folders full of PDFs, Office files, emails, ebooks, web pages, notebooks, transcripts, images, archives, and text files, and want to
turn them into a clean Markdown knowledge base.
Highlights
- Desktop app for selecting a source file/folder and an output folder.
- CLI for repeatable batch conversion and automation.
- Obsidian-friendly output with Markdown notes,
_attachments/, YAML frontmatter, and conversion reports. - Preserves the source folder structure by default.
- Extracts images and embedded attachments when supported by the source format.
- Optional converter groups for Office, PDF, HTML, OCR, audio/video, email, ebooks, markup, and drag-and-drop support.
- Supports incremental runs, resume, dry run, archive recursion, metadata extraction, glob filters, max file size, and concurrency.
- English UI by default, with multilingual UI support.
Supported Platforms
2Markdown is written in Python and can run on:
- Windows
- macOS
- Linux
Windows users can launch the desktop app without a console window:
scripts/run_windows.pyw
macOS and Linux users can launch from the terminal:
python -m two_markdownA packaged Windows installer and macOS app bundle are not included yet.
Quick Start
Run the desktop app:
python -m two_markdownRun from the command line:
python -m two_markdown --source "D:\Files" --output "D:\ObsidianVault\Imported"Install all optional converters:
python -m pip install -e .[all]Install only common document converters:
python -m pip install -e .[office,pdf,web]Example Output
2Markdown creates Obsidian-friendly output like this:
ObsidianVault/
Imported/
Project/
pitch-deck.md
notes.md
_attachments/
Project/
pitch-deck/
slide-1-image.png
conversion_report.csv
conversion_report.json
_2markdown_manifest.json
Each generated Markdown file can include YAML frontmatter:
---
title: "Pitch Deck"
source_path: "D:\Files\Project\pitch-deck.pdf"
source_ext: ".pdf"
converted_at: "2026-06-22T10:00:00+08:00"
converter: "pdf"
tags:
- imported
- 2markdown
---Supported Formats
Built-in support includes:
.txt,.md.csv,.tsv.html,.htm.eml.ipynb.rtf,.org,.rst.epub.odt,.ods,.odp.zip,.tar,.tar.gz,.tgz,.tar.bz2,.tar.xz,.gz,.bz2,.xz
Optional converter groups add support for:
- Office:
.docx,.xlsx,.pptx - PDF:
.pdf - OCR: scanned PDFs and images
- Audio/video transcription
- Outlook
.msg - Richer HTML and markup conversion
- GUI drag-and-drop support
Known Limitations
- Python is required.
- There is no packaged Windows installer or macOS
.appyet. - PDF conversion quality depends on how the PDF was created.
- Scanned PDFs and images require OCR setup.
- OCR requires system Tesseract installation in addition to Python packages.
- Audio/video transcription requires optional model dependencies and may be heavy.
- Complex layouts may still need manual review after conversion.
- Drag-and-drop support depends on the optional
tkinterdnd2package.
Documentation
- Supported formats: https://github.com/mococouo/2markdown/blob/main/docs/supported-formats.md
- Troubleshooting: https://github.com/mococouo/2markdown/blob/main/docs/troubleshooting.md
- Roadmap: https://github.com/mococouo/2markdown/blob/main/docs/roadmap.md
- Changelog: https://github.com/mococouo/2markdown/blob/main/CHANGELOG.md
Notes
This is a beta release. Feedback, issues, and pull requests are welcome.