Skip to main content

⌖ Markdown tools for modular docs.

Project description

splitme Logo

Powerful markdown tools for modern documentation

Build, manage, and scale your documentation workflows.

separator

What is Splitme?

Splitme is a comprehensive Python toolkit designed to streamline your Markdown workflow. Whether you're managing documentation, writing technical content, or maintaining a knowledge base, Splitme provides essential utilities to make working with Markdown files easier and more efficient.

Core Features:

  • Text Splitting: Break down large Markdown files into manageable sections based on headings or custom rules.
  • Link Management: Convert between inline and reference-style links, validate URLs, and identify broken links.
  • Content Analysis: Analyze document structure, extract metadata, and ensure consistent formatting.
  • Documentation Tools: Generate configurations for static site generators like MkDocs and maintain organized documentation.

Quick Start

Installation

Install from PyPI using your preferred package manager.

 pip

Use pip (recommended for most users):

pip install -U splitme

 pipx

Install in an isolated environment with pipx:

 pipx install splitme

 uv

For the fastest installation use uv:

 uv tool install splitme

Using the CLI

Text Splitting

Split large Markdown files into smaller, organized sections:

splitme \
    --split.i tests/data/markdown/readme-ai.md \
    --split.o docs/examples/split-sections-h2

Link Validation

Check for broken links in your documentation:

splitme --check-links.input tests/data/markdown/pydantic.md

You will see a summary of the broken links in your terminal:

Markdown Link Check Results

┏━━━━━━━━┳━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ Status ┃ Line ┃ Link                                                                              ┃ Error    ┃
┡━━━━━━━━╇━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ ✓      │ 2    │ https://img.shields.io/github/actions/workflow/status/pydantic/pydantic/ci.yml?b… │          │
│ ✓      │ 3    │ https://coverage-badge.samuelcolvin.workers.dev/pydantic/pydantic.svg             │          │
│ ✓      │ 4    │ https://img.shields.io/pypi/v/pydantic.svg                                        │          │
│ ✓      │ 5    │ https://img.shields.io/conda/v/conda-forge/pydantic.svg                           │          │
│ ✓      │ 6    │ https://static.pepy.tech/badge/pydantic/month                                     │          │
│ ✓      │ 7    │ https://img.shields.io/pypi/pyversions/pydantic.svg                               │          │
│ ✓      │ 8    │ https://img.shields.io/github/license/pydantic/pydantic.svg                       │          │
│ ✓      │ 9    │ https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/p… │          │
│ ✓      │ 18   │ https://pydantic.dev/articles/logfire-announcement                                │          │
│ ✓      │ 24   │ https://docs.pydantic.dev/                                                        │          │
│ ✓      │ 24   │ https://github.com/pydantic/pydantic/tree/1.10.X-fixes                            │          │
│ ✓      │ 28   │ https://docs.pydantic.dev/                                                        │          │
│ 𝗫      │ 34   │ https://docs.pydantic.dev/install/invalid-link                                    │ HTTP 404 │
└────────┴──────┴───────────────────────────────────────────────────────────────────────────────────┴──────────┘

Summary: 1 broken links out of 13 total links.

Reference Link Conversion

Convert inline links to reference-style for better maintainability:

splitme --reflinks.input tests/data/markdown/pydantic.md --reflinks.output with_refs.md

Static Site Documentation Generation

Generate a MkDocs configuration mkdocs.yml file from a Markdown document:

splitme \
    --split.i tests/data/markdown/readme-ai.md \
    --split.o docs/examples/split-sections-h2 \
    --mkdocs.dir docs/examples/split-sections-h2 \
    --mkdocs.site-name "MyDocs"

View the output of all examples above here.


Roadmap

  • Support for additional documentation formats (e.g., reStructuredText, HTML)
  • Add more intuitive CLI commands and options.
  • Integration with more static site generators
  • Plugin system for custom utilities
  • Enhanced content analysis features

Contributing

Contributions are welcome! Whether it's bug reports, feature requests, or code contributions, please feel free to:

  1. Open an issue
  2. Submit a pull request
  3. Improve documentation
  4. Share your ideas

License

Splitme is released under the MIT license Copyright © 2024-2025 Splitme

separator

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

splitme-0.1.11.tar.gz (217.1 kB view details)

Uploaded Source

Built Distribution

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

splitme-0.1.11-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file splitme-0.1.11.tar.gz.

File metadata

  • Download URL: splitme-0.1.11.tar.gz
  • Upload date:
  • Size: 217.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for splitme-0.1.11.tar.gz
Algorithm Hash digest
SHA256 474cbbdea2a44462e42abf5d981b09189b2e14b99575af446ecabe775630c7e8
MD5 c0f5e886d991ae0d858ca2696003c77d
BLAKE2b-256 fdb470a082c3f062519c7a2ae788b3217a03c88dc558bb5ed5a7b5008ff460f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for splitme-0.1.11.tar.gz:

Publisher: ci.yml on eli64s/splitme

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

File details

Details for the file splitme-0.1.11-py3-none-any.whl.

File metadata

  • Download URL: splitme-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 26.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for splitme-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 22d6f75a6007f55d532c91b4a8f016e0cea30736610610e7d246cfe389d4e850
MD5 fee7490c1374a59ad31fd8488ca06678
BLAKE2b-256 534b31d3d7a2060391b3d1e6fed7d31424422d928aefb8ee5d0dce60ad16e771

See more details on using hashes here.

Provenance

The following attestation bundles were made for splitme-0.1.11-py3-none-any.whl:

Publisher: ci.yml on eli64s/splitme

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