Skip to main content

Extract URLs from markdown files and convert them to individual markdown documents.

Project description

LinkWeaver 🕸️

LinkWeaver finds URLs in Markdown files and uses MarkItDown to turn the URL content into a local Markdown file.

📦 Install

Use uvx if you only want to run LinkWeaver once.

uvx linkweaver notes.md

If you use uv tools, install LinkWeaver once and run it from anywhere.

uv tool install linkweaver

You can also install the package from PyPI.

pip install linkweaver

🚀 Quick start

Process one file.

linkweaver notes.md

When you run this command, LinkWeaver creates a notes-resources/ folder next to notes.md. LinkWeaver saves one .md file in that folder for each URL.

Run it with uvx without installing anything too!

uvx linkweaver notes.md

List all unique URLs in your files.

linkweaver --list-links notes/*.md

Save all resource files to one folder.

linkweaver -o resources notes.md

Download files again even when they already exist.

linkweaver --force notes.md

Preview the work without writing files or fetching URLs.

linkweaver --dry-run notes.md

🧰 Common tasks

Preview the first 10 URLs across Markdown files.

linkweaver --list-links *.md | head -10

See which URLs LinkWeaver would fetch or skip.

linkweaver --dry-run notes.md

Preview a run that would download existing files again.

linkweaver --force --dry-run notes.md

Turn off retries.

linkweaver --retries 0 notes.md

Run with less output and 5 retries.

linkweaver --quiet --retries 5 notes.md

Process several files.

linkweaver *.md

📁 Output files

For each input file, LinkWeaver creates a resource folder. When you process notes.md, you get this folder.

notes.md
notes-resources/
├── example.com-page-title.md
├── github.com-user-repo.md
└── youtube.com-watch-v-abc123.md

Use -o DIR or --output-dir DIR to put all resource files in one folder.

In each resource file, you get:

  • The file name is based on the URL.
  • You can see the source URL.
  • You can read the content as Markdown.
  • You can see error details if the download failed.

A resource file looks like this.

# Example Page Title

**Source:** https://example.com/page/title

[Converted markdown content here...]

📜 License

MIT. See LICENSE.

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

linkweaver-0.6.1.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

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

linkweaver-0.6.1-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file linkweaver-0.6.1.tar.gz.

File metadata

  • Download URL: linkweaver-0.6.1.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","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}

File hashes

Hashes for linkweaver-0.6.1.tar.gz
Algorithm Hash digest
SHA256 1764099954dd6fafff9b83997f27a93eea1b93bc9696b599c503c7e5bb95ceb2
MD5 08880d93b4f45464c80f77b6342470ac
BLAKE2b-256 c93e2ab0f41736073e9504fc48557022519ded60060d43687cf5794471d51498

See more details on using hashes here.

File details

Details for the file linkweaver-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: linkweaver-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","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}

File hashes

Hashes for linkweaver-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c03990a30bc17a06dbe90789bd5020776084a755b39d72943905cddd14c8dbb4
MD5 ba07260e5bd975d9e0314cf6e65fa4ae
BLAKE2b-256 e2d695c51cffcc9835f3f523228c4f3c54ead5dfe0b21e688742af438181159a

See more details on using hashes here.

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