Skip to main content

❂ Markdown tools for modular and flexible docs: link validation, reference link conversion, text splitting, & more.

Project description

markitecture Logo

Building Blocks for Brilliant Documentation.

Markitecture: The Python toolkit that empowers modular Markdown workflows.

separator

What is Markitecture?

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

Key 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.

Quick Start

Installation

Install from PyPI using your preferred package manager.

 pip

Use pip (recommended for most users):

pip install -U markitecture

 pipx

Install in an isolated environment with pipx:

 pipx install markitecture

 uv

For the fastest installation use uv:

 uv tool install markitecture

Using the CLI

Text Splitting

Split large Markdown files into smaller, organized sections:

markitect \
    --split.i tests/data/readme-ai.md \
    --split.o examples/split-sections-h2

Link Validation

Check for broken links in your documentation:

markitect --check-links.input tests/data/pydantic.md

In your terminal, you'll see a summary of the results:

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

In Markdown, reference-style links let you write cleaner text by keeping URLs in a reference section - think footnotes for the web.

To convert inline links to reference-style links:

markitect \
    --reflinks.input tests/data/pydantic.md \
    --reflinks.output with_refs.md

Static Site Configuration Generation

Generate a MkDocs configuration (mkdocs.yml) from a given Markdown file.

  1. Split the Markdown file into sections:

    markitect \
        --split.i tests/data/readme-ai.md \
        --split.o examples/split-sections-h2
    
  2. Generate the MkDocs configuration:

    markitect \
        --mkdocs.dir examples/split-sections-h2 \
        --mkdocs.site-name "MyDocsSite"
    

See additional example and usage details in the here.


Roadmap

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

Contributing

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

  • Open an issue
  • Submit a pull request
  • Improve documentation, write tutorials, etc.
  • Share your feedback and suggestions

License

Copyright © 2024-2025 Markitecture.
Released under the MIT license.

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

markitecture-0.2.2.tar.gz (256.4 kB view details)

Uploaded Source

Built Distribution

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

markitecture-0.2.2-py3-none-any.whl (41.8 kB view details)

Uploaded Python 3

File details

Details for the file markitecture-0.2.2.tar.gz.

File metadata

  • Download URL: markitecture-0.2.2.tar.gz
  • Upload date:
  • Size: 256.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for markitecture-0.2.2.tar.gz
Algorithm Hash digest
SHA256 95a2b9fbe3918f0274a8ea84f1d2ec385fa811166efc5587d327d1a7abfdfe3f
MD5 766041c89e806cda2a11fd3856f090d2
BLAKE2b-256 e03e8dc2f7382d0bdc1563e3d1612bf4a7c885abc05d3d6b0b5045d5f75b1a17

See more details on using hashes here.

Provenance

The following attestation bundles were made for markitecture-0.2.2.tar.gz:

Publisher: ci.yml on eli64s/markitecture

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

File details

Details for the file markitecture-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: markitecture-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 41.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for markitecture-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9aaf885c9762587714014978d98f2752f62e180aa022c6755df2ac5d6f7e9f6a
MD5 9caddde9d8e5ecf6acd3ed71c8e39b37
BLAKE2b-256 738afd0bae5083ad117e3d3900aed9898f96a5fded7766da542478d813867fca

See more details on using hashes here.

Provenance

The following attestation bundles were made for markitecture-0.2.2-py3-none-any.whl:

Publisher: ci.yml on eli64s/markitecture

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