Skip to main content

Convert documents to Markdown using Cloudflare Workers AI toMarkdown.

Project description

anything2md

CI PyPI version Python >=3.10 License: MIT

Python package and CLI for converting URLs or local documents into Markdown using Cloudflare Workers AI toMarkdown().

Install

From PyPI with uv:

uv add anything2md

Or from PyPI (pip):

pip install anything2md

Cloudflare Token Setup

Create a Cloudflare API Token for the target account and include these permissions:

  • Workers AI -- Read
  • Browser Rendering -- Edit

Usage

import anything2md

mdconverter = anything2md(account_id="xxx", api_token="xxx")
result = mdconverter.transform("https://example.com")
result = mdconverter.transform("https://pub-979cb28270cc461d94bc8a169d8f389d.r2.dev/somatosensory.pdf")
result = mdconverter.transform("https://pub-979cb28270cc461d94bc8a169d8f389d.r2.dev/cat.jpeg")

# Browser Rendering advanced options for webpage URLs
result = mdconverter.transform(
    "https://example.com",
    url_strategy="browser",
    wait_until="networkidle2",
    reject_request_pattern=["/^.*\\.(css)$/", "/analytics/"],
)
print(result.markdown)

Supported Formats

Based on Cloudflare docs, current supported extensions include:

pdf, jpeg/jpg, png, webp, svg, html/htm, xml, csv, docx, xlsx, xlsm, xlsb, xls, et, ods, odt, numbers

url via Browser Rendering Markdown endpoint.

Local Usage

Install dependencies:

uv sync
export CLOUDFLARE_ACCOUNT_ID="your_account_id"
export CLOUDFLARE_API_TOKEN="your_api_token"

uv run anything2md https://pub-979cb28270cc461d94bc8a169d8f389d.r2.dev/somatosensory.pdf
uv run anything2md https://pub-979cb28270cc461d94bc8a169d8f389d.r2.dev/cat.jpeg -o output.md
uv run anything2md https://example.com
uv run anything2md https://example.com --url-strategy browser --wait-until networkidle2 --reject-request-pattern '/^.*\.(css)$/' --reject-request-pattern '/analytics/'

Integration Test (Real Cloudflare)

If both CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN are set, integration tests automatically run real Cloudflare calls and validate that:

  • result.error is empty
  • result.markdown is non-empty

Optional test URL overrides:

  • ANYTHING2MD_TEST_PDF_URL
  • ANYTHING2MD_TEST_IMAGE_URL
  • ANYTHING2MD_TEST_WEB_URL

References

Cloudflare docs:

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anything2md-0.1.3.tar.gz (24.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anything2md-0.1.3-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file anything2md-0.1.3.tar.gz.

File metadata

  • Download URL: anything2md-0.1.3.tar.gz
  • Upload date:
  • Size: 24.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for anything2md-0.1.3.tar.gz
Algorithm Hash digest
SHA256 9df030cf300167e14fdada354be32be819bac05e343813644ad9f2a47691eebd
MD5 a9ad49447e56d9f5c173c0cda44b943b
BLAKE2b-256 f87a005db29885eede9c3fb80fff15f7400876f7dbda5c803ac128f7778f3634

See more details on using hashes here.

Provenance

The following attestation bundles were made for anything2md-0.1.3.tar.gz:

Publisher: publish.yml on herrkaefer/anything2md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file anything2md-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: anything2md-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for anything2md-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 06dc1f6f4d5d29d6d101da9553e7e909cd273719163dbb5827611b794203f53b
MD5 6dbb0888bedc27e378e572963530254e
BLAKE2b-256 4313ef99965ee71e674a98462929b72d2c817ea086a5b420264d544197753bce

See more details on using hashes here.

Provenance

The following attestation bundles were made for anything2md-0.1.3-py3-none-any.whl:

Publisher: publish.yml on herrkaefer/anything2md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page