Dropdown is a macOS application that provides a clean interface for bidirectional document conversion:
- PDF to Markdown: Converts
.pdffiles to.mdusingmarkitdown. - Markdown to PDF: Converts
.mdfiles to.pdfusing themarkdownlibrary and PyQt6.
This guide details how to install dependencies, run the application locally, and package it into a macOS .app bundle using py2app.
Make sure you have Python 3 installed on your macOS system. It is highly recommended to use a virtual environment.
Open your terminal, navigate to the buddy-dropdown directory, and run the following commands:
# Create a virtual environment (optional but recommended)
python3 -m venv venv
source venv/bin/activate
# Install the required dependencies
pip install -r requirements.txtBefore packaging the app, you can test it directly using Python:
python3 app.pyA window will open with a toggle button at the top to choose between .pdf ➔ .md and .md ➔ .pdf modes. Depending on the selected mode, you can drag and drop multiple .pdf or .md files into the Drop Zone. The converted files will be saved in the same directory as the original files.
Once you confirm the app works locally, you can build the standalone .app bundle using py2app.
# Run the setup script to build the app
python3 setup.py py2appThis process might take a few minutes as it bundles all dependencies (PyQt6, markitdown, etc.) into the app.
If you want to build an alias bundle for testing without fully copying all dependencies (faster), you can run:
python3 setup.py py2app -AAfter the build process completes, you will find a new dist folder in your directory.
You can run your app by either:
- Double-clicking
Dropdown.appinside thedistfolder via Finder. - Or running it from the terminal:
open dist/Dropdown.appThis project is configured with GitHub Actions to automatically build and release a .dmg installer.
- Commit your changes and push them to the
mainbranch:git push origin main
- Create a version tag (must start with
v, e.g.,v1.0.0) and push it:git tag v1.0.0 git push origin v1.0.0
- GitHub Actions will automatically:
- Build the macOS
.appusingpy2app. - Package it into a
.dmgfile usingcreate-dmg. - Create a new GitHub Release and upload the
.dmgfile.
- Build the macOS
You can then download the installer directly from the repository's Releases page!
If you downloaded the .dmg from GitHub Releases, you might encounter a security warning when opening the app, such as "Dropdown.app cannot be opened because the developer cannot be verified" or "Dropdown.app is damaged and can't be opened." This is due to macOS Gatekeeper flagging apps that aren't officially signed by an Apple Developer account.
To fix this and bypass Gatekeeper:
Open your terminal and run the following command to remove the quarantine flag:
xattr -cr /Applications/Dropdown.app(Make sure to adjust the path if you installed it somewhere other than /Applications)
- Try to open the app (it will be blocked).
- Open System Settings > Privacy & Security.
- Scroll down to the Security section.
- You should see a message saying "Dropdown.app was blocked from use because it is not from an identified developer." Click Open Anyway.