Skip to content
/ splitme Public

❂ Tools for modular and flexible Markdown docs: link validation, reference-style link converter, text splitting, static site generation, & more.

License

Notifications You must be signed in to change notification settings

eli64s/splitme

Repository files navigation

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