pdf2md-study
English | 한국어
Convert papers and lecture slides (PDF) into study-ready Markdown for LLMs — equations and code kept as images, logos and references stripped.
Built on Docling.
Why
Uploading a PDF to an LLM sends the text and an image of every page. The Markdown is several times smaller and keeps what matters for studying. Each conversion prints an estimate like these:
| Document | Markdown | + images | |
|---|---|---|---|
| 26-page paper | ~53,900 tokens | ~14,600 | ~3,300 |
| 39-page lecture slides | ~116,400 tokens | ~6,700 | ~18,300 |
Features
- Equations and code are cropped as images, so nothing is lost to recognition errors.
- Logos and decorations repeated across pages are removed.
- The references section is removed.
- Slides get a
[p.N]label on each page. - Images are named by page:
p04_1.png,p05_eq1.png,p30_code1.png.
Get started
With uv installed:
uv tool install pdf2md-study
pdf2md-study paper.pdf
Or with Docker, with Docling's models included:
docker run --rm --user "$(id -u):$(id -g)" -v "$PWD:/data" ghcr.io/inhyunseo/pdf2md-study paper.pdf
paper.md and paper_artifacts/ appear next to the PDF.
- Quickstart: step by step on Ubuntu, WSL2, macOS, and Windows
- Usage: options, output, and tips for sending to an LLM
Development
git clone https://github.com/InHyunseo/pdf2md-study.git
cd pdf2md-study
uv sync
uv run pytest
uv run ruff check
Pull requests run lint and tests on Ubuntu, Windows, and macOS.
License
Metadata
Release files for pdf2md-study 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pdf2md_study-0.3.0.tar.gz | 12.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pdf2md_study-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.0 kB
Release files / pdf2md_study-0.3.0.tar.gz
| Download URL | pdf2md_study-0.3.0.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8324510f6a2a385afcad3aa7c3bcd2fe0e829a1db4154d0bf14896a2e17c9b8d
|
|
BLAKE2b-256 checksum How to use checksums |
0b5d281288302ff12d87c1133891cddddf77c871968c42ef3882579ad7640e40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pdf2md_study-0.3.0-py3-none-any.whl
| Download URL | pdf2md_study-0.3.0-py3-none-any.whl |
|---|---|
| Size | 16.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
83acf01dfd24674d11ae2f206b7fb6255cb08d84f92df5d8174fb3d64f4c5da2
|
|
BLAKE2b-256 checksum How to use checksums |
38e8a2968a61fc540567241cb5e59c1e187d7b364845c4cbc6c12aa14c554b56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|