❂ Markdown tools for modular and flexible docs: link validation, reference link conversion, text splitting, & more.
Project description
The Architecture of Better Documentation.
Markitecture: The Python toolkit that empowers modular Markdown workflows.
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.
-
Split the Markdown file into sections:
markitect \ --split.i tests/data/readme-ai.md \ --split.o examples/split-sections-h2
-
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file markitecture-0.2.3.tar.gz.
File metadata
- Download URL: markitecture-0.2.3.tar.gz
- Upload date:
- Size: 256.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
197768055605dc7d59d57ff07d9799f0e3f297c96d9f53d3d2eb7d377fcf829b
|
|
| MD5 |
a32c0e211bc0915b5eeacc6bc04a1071
|
|
| BLAKE2b-256 |
743b477278c196dd7627b070f1abbdc0fb84e48c4c5bcf3a7c31b8da757ccdbf
|
Provenance
The following attestation bundles were made for markitecture-0.2.3.tar.gz:
Publisher:
ci.yml on eli64s/markitecture
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
markitecture-0.2.3.tar.gz -
Subject digest:
197768055605dc7d59d57ff07d9799f0e3f297c96d9f53d3d2eb7d377fcf829b - Sigstore transparency entry: 172936078
- Sigstore integration time:
-
Permalink:
eli64s/markitecture@ea40fb8706c3a57fef3ca89f9a069ff72c393dd9 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/eli64s
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@ea40fb8706c3a57fef3ca89f9a069ff72c393dd9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file markitecture-0.2.3-py3-none-any.whl.
File metadata
- Download URL: markitecture-0.2.3-py3-none-any.whl
- Upload date:
- Size: 41.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d889c414335fa76990726dfc688103634a076b94696e04faa0071b0557f5bc0f
|
|
| MD5 |
8cb78e1d28d43f892ad7af6dff93866b
|
|
| BLAKE2b-256 |
632d72f1a0916bff81f1ea98a27a1eb8049b4b27a866afd2edfab71fc115964e
|
Provenance
The following attestation bundles were made for markitecture-0.2.3-py3-none-any.whl:
Publisher:
ci.yml on eli64s/markitecture
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
markitecture-0.2.3-py3-none-any.whl -
Subject digest:
d889c414335fa76990726dfc688103634a076b94696e04faa0071b0557f5bc0f - Sigstore transparency entry: 172936080
- Sigstore integration time:
-
Permalink:
eli64s/markitecture@ea40fb8706c3a57fef3ca89f9a069ff72c393dd9 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/eli64s
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@ea40fb8706c3a57fef3ca89f9a069ff72c393dd9 -
Trigger Event:
push
-
Statement type: