No description
Find a file
Ethan Troy 733e4dca8f Merge branch 'worktree-agent-af6650b1'
# Conflicts:
#	src/modals/FileConvertModal.ts
#	styles.css
2026-03-17 20:44:51 -04:00
.github Add BRAT beta channel and release workflow (ENG-651) 2026-03-17 20:34:46 -04:00
python Add YouTube/URL conversion command (ENG-644) 2026-03-17 20:35:39 -04:00
src Merge branch 'worktree-agent-af6650b1' 2026-03-17 20:44:51 -04:00
.editorconfig Initial commit 2025-03-07 23:54:16 -05:00
.eslintignore Initial commit 2025-03-07 23:54:16 -05:00
.eslintrc Initial commit 2025-03-07 23:54:16 -05:00
.gitignore Remove worktree dirs from tracking, add to gitignore 2026-03-17 20:39:53 -04:00
.npmrc Initial commit 2025-03-07 23:54:16 -05:00
CHANGELOG.md Add CHANGELOG for v2.0.0 rewrite 2026-02-17 07:49:41 -05:00
esbuild.config.mjs Rewrite plugin v2: fix shell injection, modularize, add features (ENG-533) 2026-02-17 01:08:20 -05:00
LICENSE Update to MIT License and add license link in README 2025-03-10 16:29:32 +00:00
main.ts Merge branch 'worktree-agent-af6650b1' 2026-03-17 20:44:51 -04:00
manifest-beta.json Add BRAT beta channel and release workflow (ENG-651) 2026-03-17 20:34:46 -04:00
manifest.json Rewrite plugin v2: fix shell injection, modularize, add features (ENG-533) 2026-02-17 01:08:20 -05:00
package-lock.json Rewrite plugin v2: fix shell injection, modularize, add features (ENG-533) 2026-02-17 01:08:20 -05:00
package.json Rewrite plugin v2: fix shell injection, modularize, add features (ENG-533) 2026-02-17 01:08:20 -05:00
README.md Add BRAT beta channel and release workflow (ENG-651) 2026-03-17 20:34:46 -04:00
styles.css Merge branch 'worktree-agent-af6650b1' 2026-03-17 20:44:51 -04:00
tsconfig.json Rewrite plugin v2: fix shell injection, modularize, add features (ENG-533) 2026-02-17 01:08:20 -05:00
version-bump.mjs Initial commit 2025-03-07 23:54:16 -05:00
versions.json Rewrite plugin v2: fix shell injection, modularize, add features (ENG-533) 2026-02-17 01:08:20 -05:00

Markitdown File Converter

Integrate Microsoft's Markitdown tool to convert various file formats to Markdown for your vault.

Features

  • Convert various file formats to Markdown:

    • PDF
    • PowerPoint (PPTX)
    • Word (DOCX)
    • Excel (XLSX, XLS)
    • Images (with EXIF metadata and OCR)
    • Audio (with EXIF metadata and speech transcription)
    • HTML
    • Text-based formats (CSV, JSON, XML)
    • ZIP files
    • Youtube URLs
    • And more!
  • Convert individual files or entire folders at once

  • Easy installation of the Markitdown Python package directly from the plugin

  • Optional use of Azure Document Intelligence for improved conversion quality

  • Support for third-party Markitdown plugins

Installation

  1. Install the plugin from the Obsidian Community Plugins browser
  2. Enable the plugin in Obsidian's settings
  3. The plugin will guide you through installing the Markitdown Python package

Beta Testing

You can get early access to new features by installing beta releases via BRAT (Beta Reviewers Auto-update Tester):

  1. Install the BRAT plugin from the Obsidian Community Plugins browser
  2. Enable BRAT in your Obsidian settings
  3. In BRAT settings, click Add Beta Plugin
  4. Enter: ethanolivertroy/obsidian-markitdown
  5. BRAT will install the latest beta release and keep it updated automatically

Requirements

  • Obsidian v0.15.0 or higher
  • Python 3.7 or higher installed on your system
  • Internet connection for initial Markitdown installation

Usage

Converting a single file

  1. Click the "Convert to Markdown with Markitdown" ribbon icon in the left sidebar, or use the command palette to run "Convert file to Markdown with Markitdown"
  2. Select the file you want to convert
  3. Click the "Convert" button
  4. The converted Markdown file will be saved in your specified output folder and automatically opened

Converting multiple files in a folder

  1. Use the command palette to run "Convert folder contents to Markdown with Markitdown"
  2. Select the folder containing the files you want to convert
  3. Check the file types you want to include in the conversion
  4. Click the "Convert" button
  5. The converted Markdown files will be saved in your specified output folder

Configuration

The plugin settings can be found in the Obsidian settings panel under "Markitdown":

  • Python Path: Specify the path to your Python executable (default: "python")
  • Enable Markitdown Plugins: Toggle to enable third-party Markitdown plugins
  • Azure Document Intelligence Endpoint: Optionally add an Azure Document Intelligence endpoint for improved conversion quality
  • Output Folder: Specify where the converted Markdown files should be saved (relative to vault root, default: "markitdown-output")

How it works

This plugin acts as a bridge between Obsidian and Microsoft's Markitdown Python library. When you convert a file:

  1. The plugin passes the file to the Markitdown Python library
  2. Markitdown processes the file and extracts its content and structure
  3. The content is converted to well-formatted Markdown
  4. The resulting Markdown is saved as a new file in your Obsidian vault

Troubleshooting

  • Python not found: Make sure Python is installed on your system and the path is correctly set in the plugin settings
  • Conversion errors: Check the console for error messages by pressing Ctrl+Shift+I (or Cmd+Opt+I on Mac)
  • Missing dependencies: Some file formats may require additional Python dependencies. The plugin will try to install these automatically, but you may need to install them manually

Development

  • Clone this repo
  • Make sure your NodeJS is at least v16 (node --version)
  • npm i or yarn to install dependencies
  • npm run dev to start compilation in watch mode

Manually installing the plugin

  • Copy over main.js, styles.css, manifest.json, and the python/ directory to your vault VaultFolder/.obsidian/plugins/markitdown/

Credits

License

This project is licensed under the MIT License - see the LICENSE file for details.