splitme-ai


Namesplitme-ai JSON
Version 0.1.9 PyPI version JSON
download
home_pageNone
SummaryBreak down docs, build up knowledge.
upload_time2025-01-08 05:26:05
maintainerNone
docs_urlNone
authorNone
requires_python<=3.13,>=3.9
licenseNone
keywords ai devtools documentation documentation-tool markdown markdown-parser markdown-split mkdocs python readme
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div id="top" align="center">

<!-- HEADER -->
<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/eli64s/splitme-ai/ed2534164a2f7f2a7b4aafef998127791b205f30/docs/assets/logo-dark.svg">
  <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/eli64s/splitme-ai/ed2534164a2f7f2a7b4aafef998127791b205f30/docs/assets/logo-light.svg">
  <img alt="SplitMe-AI Logo" src="https://raw.githubusercontent.com/eli64s/splitme-ai/ed2534164a2f7f2a7b4aafef998127791b205f30/docs/assets/logo-light.svg" width="900" style="max-width: 100%;">
</picture>

<h3 align="center">
  Break down your docs. Build up your knowledge.
</h3>

<p align="center">
  <em>A Markdown text splitter for modular docs and maximum flexibility.</em>
</p>

<!-- BADGES -->
<div align="center">
  <p align="center" style="margin-bottom: 20px;">
    <a href="https://github.com/eli64s/splitme-ai/actions">
      <img src="https://img.shields.io/github/actions/workflow/status/eli64s/splitme-ai/ci.yml?label=CI&style=flat&logo=githubactions&logoColor=white&labelColor=2A2A2A&color=ffd700" alt="GitHub Actions" />
    </a>
    <a href="https://app.codecov.io/gh/eli64s/splitme-ai">
      <img src="https://img.shields.io/codecov/c/github/eli64s/splitme-ai?label=Coverage&style=flat&logo=codecov&logoColor=white&labelColor=2A2A2A&color=3fe1c0" alt="Coverage" />
    </a>
    <a href="https://pypi.org/project/splitme-ai/">
      <img src="https://img.shields.io/pypi/v/splitme-ai?label=PyPI&style=flat&logo=pypi&logoColor=white&labelColor=2A2A2A&color=3d8be1" alt="PyPI Version" />
    </a>
    <a href="https://github.com/eli64s/splitme-ai">
      <img src="https://img.shields.io/pypi/pyversions/splitme-ai?label=Python&style=flat&logo=python&logoColor=white&labelColor=2A2A2A&color=9b26d4" alt="Python Version" />
    </a>
    <a href="https://opensource.org/license/mit/">
      <img src="https://img.shields.io/github/license/eli64s/splitme-ai?label=License&style=flat&logo=opensourceinitiative&logoColor=white&labelColor=2A2A2A&color=ff00ff" alt="MIT License">
    </a>
  </p>
</div>

<div align="center">
  <img src="https://raw.githubusercontent.com/eli64s/splitme-ai/216a92894e6f30c707a214fad5a5fba417e3bc39/docs/assets/line.svg" alt="separator" width="100%" height="2px" style="margin: 20px 0;">
</div>

</div>

## What is SplitmeAI?

SplitmeAI is a Python module that addresses challenges in managing large Markdown files, particularly when creating and maintaining structured static documentation sites such as [Mkdocs][mkdocs].

__Key Features:__

- **Section Splitting:** Breaks down large Markdown files into smaller, manageable sections based on specified heading levels.
- **Hierarchy Preservation:** Maintains parent heading context within each split file.
- **Filename Sanitization:** Generates clean, unique filenames for each section, ensuring compatibility and readability.
- **Reference Link Management:** Extracts and appends reference-style links used within each section.
- **Reference Link Conversion:** Convert all inline links to reference-style links for improved readability and maintainability.
- **Thematic Break Handling:** Recognizes and handles line breaks (`---`, `***`, `___`) for intelligent content segmentation.
- **MkDocs Integration:** Automatically generates an `mkdocs.yml` configuration file based on the split sections.
- **CLI Support:** Provides a user-friendly Command-Line Interface for seamless operation.

---

## Quick Start

### Installation

Install from [PyPI][pypi] using your preferred package manager listed below.

#### <img width="2%" src="https://simpleicons.org/icons/python.svg">&emsp13;pip

Use [pip][pip] (recommended for most users):

```sh
pip install -U splitme-ai
```

#### <img width="2%" src="https://simpleicons.org/icons/pipx.svg">&emsp13;pipx

Install in an isolated environment with [pipx][pipx]:

```sh
❯ pipx install splitme-ai
```

#### <img width="2%" src="https://simpleicons.org/icons/uv.svg">&emsp13;uv

For the fastest installation use [uv][uv]:

```sh
❯ uv tool install splitme-ai
```

### Usage

#### Using the CLI

Let's take a look at some examples of how to use the `splitme-ai` CLI.

##### Splitting a Markdown File

__Example 1:__ Split a Markdown file on heading level 2 (default setting):

```sh
splitme-ai \
    --split.i docs/examples/data/README-AI.md \
    --split.settings.o docs/examples/output-h2
```

__Example 2:__ Split on heading level 2 and generate an [mkdocs.yml] configuration file:

```sh
splitme-ai \
    --split.i docs/examples/data/README-AI.md \
    --split.settings.o docs/examples/output-h2 \
    --split.settings.mkdocs
```

__Example 3:__ Split on heading level 3:

```sh
splitme-ai \
    --split.i docs/examples/data/README-AI.md \
    --split.settings.o docs/examples/output-h3 \
    --split.settings.hl "###"
```

__Example 4:__ Split on heading level 4:

```sh
splitme-ai \
    --split.i docs/examples/data/README-AI.md \
    --split.settings.o docs/examples/output-h4 \
    --split.settings.hl "####"
```

##### Converting Reference Links

__Example 5:__ Convert inline links to reference-style links:

```sh
splitme-ai --reflinks.i tests/data/pydantic.md --reflinks.o with_reflinks.md
```

View the output of all examples above [here](./docs/examples).

>[!NOTE]
> Explore the [Official Documentation][docs] for more detailed guides and examples.

---

## Roadmap

- [X] Implement reference link conversion and management.
- [ ] Enhance CLI usability and user experience.
- [ ] Integrate AI-powered content analysis and segmentation.
- [ ] Add robust chunking and splitting algorithms for LLM applications.
- [ ] Add support for additional static site generators.
- [ ] Add support for additional input and output formats.

---

## Contributing

Contributions are welcome! For bug reports, feature requests, or questions, please [open an issue][github-issues] or submit a [pull request][github-pulls] on GitHub.

---

## License

Copyright © 2024-2025 [splitme-ai][splitme-ai]. <br />
Released under the [MIT][mit-license] license.

<div align="left">
  <a href="#top">
    <img src="https://raw.githubusercontent.com/eli64s/splitme-ai/216a92894e6f30c707a214fad5a5fba417e3bc39/docs/assets/button-circles.svg" alt="Return to Top" width="80px" height="80px">
  </a>
</div>

<div align="center">
  <img src="https://raw.githubusercontent.com/eli64s/splitme-ai/216a92894e6f30c707a214fad5a5fba417e3bc39/docs/assets/line.svg" alt="separator" width="100%" height="2px" style="margin: 20px 0;">
</div>

<!-- REFERENCE LINKS -->

<!-- PROJECT RESOURCES -->
[pypi]: https://pypi.org/project/splitme-ai/
[splitme-ai]: https://github.com/eli64s/splitme-ai
[github-issues]: https://github.com/eli64s/splitme-ai/issues
[github-pulls]: https://github.com/eli64s/splitme-ai/pulls
[mit-license]: https://github.com/eli64s/splitme-ai/blob/main/LICENSE

<!-- DEV TOOLS -->
[python]: https://www.python.org/
[pip]: https://pip.pypa.io/en/stable/
[pipx]: https://pipx.pypa.io/stable/
[uv]: https://docs.astral.sh/uv/
[mkdocs]: https://www.mkdocs.org/
[mkdocs.yml]: https://www.mkdocs.org/user-guide/configuration/

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "splitme-ai",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<=3.13,>=3.9",
    "maintainer_email": null,
    "keywords": "ai, devtools, documentation, documentation-tool, markdown, markdown-parser, markdown-split, mkdocs, python, readme",
    "author": null,
    "author_email": "Eli Salamie <egsalamie@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/73/c7/3da6d769df71da3cab62a240165be97440a861207bced98452c20f251931/splitme_ai-0.1.9.tar.gz",
    "platform": null,
    "description": "<div id=\"top\" align=\"center\">\n\n<!-- HEADER -->\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/eli64s/splitme-ai/ed2534164a2f7f2a7b4aafef998127791b205f30/docs/assets/logo-dark.svg\">\n  <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/eli64s/splitme-ai/ed2534164a2f7f2a7b4aafef998127791b205f30/docs/assets/logo-light.svg\">\n  <img alt=\"SplitMe-AI Logo\" src=\"https://raw.githubusercontent.com/eli64s/splitme-ai/ed2534164a2f7f2a7b4aafef998127791b205f30/docs/assets/logo-light.svg\" width=\"900\" style=\"max-width: 100%;\">\n</picture>\n\n<h3 align=\"center\">\n  Break down your docs. Build up your knowledge.\n</h3>\n\n<p align=\"center\">\n  <em>A Markdown text splitter for modular docs and maximum flexibility.</em>\n</p>\n\n<!-- BADGES -->\n<div align=\"center\">\n  <p align=\"center\" style=\"margin-bottom: 20px;\">\n    <a href=\"https://github.com/eli64s/splitme-ai/actions\">\n      <img src=\"https://img.shields.io/github/actions/workflow/status/eli64s/splitme-ai/ci.yml?label=CI&style=flat&logo=githubactions&logoColor=white&labelColor=2A2A2A&color=ffd700\" alt=\"GitHub Actions\" />\n    </a>\n    <a href=\"https://app.codecov.io/gh/eli64s/splitme-ai\">\n      <img src=\"https://img.shields.io/codecov/c/github/eli64s/splitme-ai?label=Coverage&style=flat&logo=codecov&logoColor=white&labelColor=2A2A2A&color=3fe1c0\" alt=\"Coverage\" />\n    </a>\n    <a href=\"https://pypi.org/project/splitme-ai/\">\n      <img src=\"https://img.shields.io/pypi/v/splitme-ai?label=PyPI&style=flat&logo=pypi&logoColor=white&labelColor=2A2A2A&color=3d8be1\" alt=\"PyPI Version\" />\n    </a>\n    <a href=\"https://github.com/eli64s/splitme-ai\">\n      <img src=\"https://img.shields.io/pypi/pyversions/splitme-ai?label=Python&style=flat&logo=python&logoColor=white&labelColor=2A2A2A&color=9b26d4\" alt=\"Python Version\" />\n    </a>\n    <a href=\"https://opensource.org/license/mit/\">\n      <img src=\"https://img.shields.io/github/license/eli64s/splitme-ai?label=License&style=flat&logo=opensourceinitiative&logoColor=white&labelColor=2A2A2A&color=ff00ff\" alt=\"MIT License\">\n    </a>\n  </p>\n</div>\n\n<div align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/eli64s/splitme-ai/216a92894e6f30c707a214fad5a5fba417e3bc39/docs/assets/line.svg\" alt=\"separator\" width=\"100%\" height=\"2px\" style=\"margin: 20px 0;\">\n</div>\n\n</div>\n\n## What is SplitmeAI?\n\nSplitmeAI is a Python module that addresses challenges in managing large Markdown files, particularly when creating and maintaining structured static documentation sites such as [Mkdocs][mkdocs].\n\n__Key Features:__\n\n- **Section Splitting:** Breaks down large Markdown files into smaller, manageable sections based on specified heading levels.\n- **Hierarchy Preservation:** Maintains parent heading context within each split file.\n- **Filename Sanitization:** Generates clean, unique filenames for each section, ensuring compatibility and readability.\n- **Reference Link Management:** Extracts and appends reference-style links used within each section.\n- **Reference Link Conversion:** Convert all inline links to reference-style links for improved readability and maintainability.\n- **Thematic Break Handling:** Recognizes and handles line breaks (`---`, `***`, `___`) for intelligent content segmentation.\n- **MkDocs Integration:** Automatically generates an `mkdocs.yml` configuration file based on the split sections.\n- **CLI Support:** Provides a user-friendly Command-Line Interface for seamless operation.\n\n---\n\n## Quick Start\n\n### Installation\n\nInstall from [PyPI][pypi] using your preferred package manager listed below.\n\n#### <img width=\"2%\" src=\"https://simpleicons.org/icons/python.svg\">&emsp13;pip\n\nUse [pip][pip] (recommended for most users):\n\n```sh\npip install -U splitme-ai\n```\n\n#### <img width=\"2%\" src=\"https://simpleicons.org/icons/pipx.svg\">&emsp13;pipx\n\nInstall in an isolated environment with [pipx][pipx]:\n\n```sh\n\u276f pipx install splitme-ai\n```\n\n#### <img width=\"2%\" src=\"https://simpleicons.org/icons/uv.svg\">&emsp13;uv\n\nFor the fastest installation use [uv][uv]:\n\n```sh\n\u276f uv tool install splitme-ai\n```\n\n### Usage\n\n#### Using the CLI\n\nLet's take a look at some examples of how to use the `splitme-ai` CLI.\n\n##### Splitting a Markdown File\n\n__Example 1:__ Split a Markdown file on heading level 2 (default setting):\n\n```sh\nsplitme-ai \\\n    --split.i docs/examples/data/README-AI.md \\\n    --split.settings.o docs/examples/output-h2\n```\n\n__Example 2:__ Split on heading level 2 and generate an [mkdocs.yml] configuration file:\n\n```sh\nsplitme-ai \\\n    --split.i docs/examples/data/README-AI.md \\\n    --split.settings.o docs/examples/output-h2 \\\n    --split.settings.mkdocs\n```\n\n__Example 3:__ Split on heading level 3:\n\n```sh\nsplitme-ai \\\n    --split.i docs/examples/data/README-AI.md \\\n    --split.settings.o docs/examples/output-h3 \\\n    --split.settings.hl \"###\"\n```\n\n__Example 4:__ Split on heading level 4:\n\n```sh\nsplitme-ai \\\n    --split.i docs/examples/data/README-AI.md \\\n    --split.settings.o docs/examples/output-h4 \\\n    --split.settings.hl \"####\"\n```\n\n##### Converting Reference Links\n\n__Example 5:__ Convert inline links to reference-style links:\n\n```sh\nsplitme-ai --reflinks.i tests/data/pydantic.md --reflinks.o with_reflinks.md\n```\n\nView the output of all examples above [here](./docs/examples).\n\n>[!NOTE]\n> Explore the [Official Documentation][docs] for more detailed guides and examples.\n\n---\n\n## Roadmap\n\n- [X] Implement reference link conversion and management.\n- [ ] Enhance CLI usability and user experience.\n- [ ] Integrate AI-powered content analysis and segmentation.\n- [ ] Add robust chunking and splitting algorithms for LLM applications.\n- [ ] Add support for additional static site generators.\n- [ ] Add support for additional input and output formats.\n\n---\n\n## Contributing\n\nContributions are welcome! For bug reports, feature requests, or questions, please [open an issue][github-issues] or submit a [pull request][github-pulls] on GitHub.\n\n---\n\n## License\n\nCopyright \u00a9 2024-2025 [splitme-ai][splitme-ai]. <br />\nReleased under the [MIT][mit-license] license.\n\n<div align=\"left\">\n  <a href=\"#top\">\n    <img src=\"https://raw.githubusercontent.com/eli64s/splitme-ai/216a92894e6f30c707a214fad5a5fba417e3bc39/docs/assets/button-circles.svg\" alt=\"Return to Top\" width=\"80px\" height=\"80px\">\n  </a>\n</div>\n\n<div align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/eli64s/splitme-ai/216a92894e6f30c707a214fad5a5fba417e3bc39/docs/assets/line.svg\" alt=\"separator\" width=\"100%\" height=\"2px\" style=\"margin: 20px 0;\">\n</div>\n\n<!-- REFERENCE LINKS -->\n\n<!-- PROJECT RESOURCES -->\n[pypi]: https://pypi.org/project/splitme-ai/\n[splitme-ai]: https://github.com/eli64s/splitme-ai\n[github-issues]: https://github.com/eli64s/splitme-ai/issues\n[github-pulls]: https://github.com/eli64s/splitme-ai/pulls\n[mit-license]: https://github.com/eli64s/splitme-ai/blob/main/LICENSE\n\n<!-- DEV TOOLS -->\n[python]: https://www.python.org/\n[pip]: https://pip.pypa.io/en/stable/\n[pipx]: https://pipx.pypa.io/stable/\n[uv]: https://docs.astral.sh/uv/\n[mkdocs]: https://www.mkdocs.org/\n[mkdocs.yml]: https://www.mkdocs.org/user-guide/configuration/\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Break down docs, build up knowledge.",
    "version": "0.1.9",
    "project_urls": {
        "Homepage": "https://github.com/eli64s/splitme-ai"
    },
    "split_keywords": [
        "ai",
        " devtools",
        " documentation",
        " documentation-tool",
        " markdown",
        " markdown-parser",
        " markdown-split",
        " mkdocs",
        " python",
        " readme"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4ffe49dc836fdb3a762d955b8e89da068c4e21f96bc738c8a291ae59b7a01e58",
                "md5": "86da4c0bff55d998420f44d55c015ee2",
                "sha256": "4220a00b719d169fe655df86f773682bc1ebc7cf624203bbcd8713c870094930"
            },
            "downloads": -1,
            "filename": "splitme_ai-0.1.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "86da4c0bff55d998420f44d55c015ee2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<=3.13,>=3.9",
            "size": 20872,
            "upload_time": "2025-01-08T05:26:02",
            "upload_time_iso_8601": "2025-01-08T05:26:02.751397Z",
            "url": "https://files.pythonhosted.org/packages/4f/fe/49dc836fdb3a762d955b8e89da068c4e21f96bc738c8a291ae59b7a01e58/splitme_ai-0.1.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "73c73da6d769df71da3cab62a240165be97440a861207bced98452c20f251931",
                "md5": "0beaf49a67b1f2f8b6c8866cdb1d2c9d",
                "sha256": "3c74b90a30128f5175e4b35c66c226c132e9e638cbfc75a9eeacbcce38e886ac"
            },
            "downloads": -1,
            "filename": "splitme_ai-0.1.9.tar.gz",
            "has_sig": false,
            "md5_digest": "0beaf49a67b1f2f8b6c8866cdb1d2c9d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<=3.13,>=3.9",
            "size": 17177,
            "upload_time": "2025-01-08T05:26:05",
            "upload_time_iso_8601": "2025-01-08T05:26:05.521345Z",
            "url": "https://files.pythonhosted.org/packages/73/c7/3da6d769df71da3cab62a240165be97440a861207bced98452c20f251931/splitme_ai-0.1.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-08 05:26:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "eli64s",
    "github_project": "splitme-ai",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "splitme-ai"
}
        
Elapsed time: 3.85425s