Skip to content

2Markdown v0.2.0 - First Public Beta

Choose a tag to compare

@mococouo mococouo released this 21 Jun 20:29
· 2 commits to main since this release

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_markdown

A packaged Windows installer and macOS app bundle are not included yet.

Quick Start

Run the desktop app:

python -m two_markdown

Run 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 .app yet.
  • 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 tkinterdnd2 package.

Documentation

Notes

This is a beta release. Feedback, issues, and pull requests are welcome.