Metadata-Version: 2.4
Name: vexy-mkdocs-tools
Version: 0.1.0
Summary: Fire-based CLI that bundles ProperDocs + MaterialX + the vexy mkdocs plugin set, for one-shot site builds via `uvx vexy-mkdocs-tools build`.
Project-URL: Homepage, https://github.com/vexyart/vexy-mkdocs-tools
Project-URL: Repository, https://github.com/vexyart/vexy-mkdocs-tools
Project-URL: Issues, https://github.com/vexyart/vexy-mkdocs-tools/issues
Project-URL: Changelog, https://github.com/vexyart/vexy-mkdocs-tools/blob/main/CHANGELOG.md
Author-email: Adam Twardoch <adam+github@twardoch.com>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: cli,materialx,mkdocs,properdocs,static-site
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Framework :: MkDocs
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Documentation
Classifier: Topic :: Software Development :: Documentation
Requires-Python: >=3.12
Requires-Dist: fire>=0.7
Requires-Dist: loguru>=0.7
Requires-Dist: mkdocs-awesome-nav>=3.3
Requires-Dist: mkdocs-copy-to-llm>=0.2
Requires-Dist: mkdocs-include-markdown-plugin>=7.2
Requires-Dist: mkdocs-llmstxt>=0.2
Requires-Dist: mkdocs-materialx>=10.1.4
Requires-Dist: mkdocs-rss-plugin>=1.17
Requires-Dist: properdocs>=1.6.7
Requires-Dist: pymdown-extensions>=10.2
Provides-Extra: dev
Requires-Dist: pytest-cov>=4.1; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Provides-Extra: flowmark
Requires-Dist: flowmark>=0.6.5; extra == 'flowmark'
Description-Content-Type: text/markdown

# vexy-mkdocs-tools

Fire-based CLI that bundles [ProperDocs](https://github.com/jaywhj/properdocs) + [MaterialX](https://github.com/jaywhj/mkdocs-materialx) and the standard `vexy-` plugin set, so a site builds in one shot:

```bash
uvx vexy-mkdocs-tools build
```

## Why

Every FontLab/Vexy MkDocs-style site repeats the same dependency list and the same wrapper script (clean `docs/` but keep `CNAME`, optionally Flowmark-format `src_docs/md/` first, then `properdocs build`, then write `.nojekyll`). This package owns the dependency set and the wrapper, so site repos shrink to "Markdown + `mkdocs.yml`".

## Install

```bash
uv pip install vexy-mkdocs-tools           # site builds
uv pip install "vexy-mkdocs-tools[flowmark]" # also Flowmark formatting
```

Or ad-hoc without installing:

```bash
uvx vexy-mkdocs-tools build
uvx --with flowmark vexy-mkdocs-tools build
```

## Commands

| Command | What it does |
|---|---|
| `vmt build` | Flowmark-format `src_docs/md/` (if available) → wipe `docs/` (preserving `CNAME`) → `properdocs build` → write `.nojekyll` |
| `vmt build --no-format` | Skip the Flowmark step |
| `vmt serve` | `properdocs serve` with the same config |
| `vmt clean` | Wipe `docs/` (preserving `CNAME`) without rebuilding |
| `vmt format` | Run Flowmark in place over `src_docs/md/` |
| `vmt version` | Print installed version |

`vexy-mkdocs-tools` and `vmt` are aliases.

## Site layout assumed

```
<repo>/
├── mkdocs/mkdocs.yml     # config (--config to override)
├── src_docs/md/          # Markdown source (--src to override)
└── docs/                 # build output (--docs to override)
```

The CLI walks up from `cwd` until it finds a directory containing both `mkdocs/mkdocs.yml` and `src_docs/`. Pass `--root` to skip the walk.

## Bundled dependencies

ProperDocs 1.6.7+, MaterialX 10.1.4+, plus `pymdown-extensions`, `mkdocs-awesome-nav`, `mkdocs-include-markdown-plugin`, `mkdocs-llmstxt`, `mkdocs-copy-to-llm`, `mkdocs-rss-plugin`. The `[flowmark]` extra adds `flowmark`.

## Develop

```bash
uv sync --extra dev
uv run python -m pytest -q
uvx ruff check src tests
./build.sh    # full build + test + wheel/sdist
./publish.sh  # upload to PyPI (needs UV_PUBLISH_TOKEN)
```

Releases are tag-driven — push a `vX.Y.Z` tag and the `release` workflow ships to PyPI.

## License

Apache-2.0.
