https://github.com/shazeus/docsmith-cli
Documentation generator and converter CLI
https://github.com/shazeus/docsmith-cli
cli converter documentation flask markdown python static-site
Last synced: 3 days ago
JSON representation
Documentation generator and converter CLI
- Host: GitHub
- URL: https://github.com/shazeus/docsmith-cli
- Owner: shazeus
- License: mit
- Created: 2026-05-18T05:11:24.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-12T08:43:06.000Z (17 days ago)
- Last Synced: 2026-06-12T10:21:41.849Z (17 days ago)
- Topics: cli, converter, documentation, flask, markdown, python, static-site
- Language: Python
- Size: 12.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Docsmith
Documentation generator, converter, inspector, and preview server for developer docs.
---
Docsmith is a terminal-first documentation toolkit for projects that need clean Markdown-to-site publishing without a heavy static-site framework. It can scaffold documentation, scan and validate existing docs, render a static HTML site, convert files between Markdown, HTML, text, JSON, and PDF, search content, extract outlines, and serve a local preview through Flask.
- **Static site builder** - Render Markdown or HTML docs into a responsive documentation site with navigation and copied assets.
- **Format conversion** - Convert documentation files to HTML, Markdown, text, JSON metadata, or a lightweight text PDF.
- **Schema-style inspection** - Summarize files, line counts, word counts, headings, links, and checksums in Rich tables or JSON.
- **Validation checks** - Detect broken local links, duplicate heading anchors, and Markdown files without headings.
- **Fast preview server** - Serve generated docs locally with a minimal Flask app.
- **Search and outline tools** - Locate content across a docs tree and inspect heading structure from the terminal.
## Installation
```bash
pip install docsmith-cli
```
## Usage
Create a starter documentation folder:
```bash
docsmith init docs --title "My Project Docs"
```
Inspect and validate the documentation tree:
```bash
docsmith scan docs
docsmith validate docs
```
Build a static site and serve it locally:
```bash
docsmith build docs --out site
docsmith serve docs --port 8080
```
Convert a Markdown file:
```bash
docsmith convert docs/index.md --to html --out build/index.html
docsmith convert docs/index.md --to pdf
```
## Commands
| Command | Description |
| --- | --- |
| `docsmith init ` | Create a starter documentation scaffold. |
| `docsmith scan ` | Inspect documentation files and summarize size, headings, links, and checksums. |
| `docsmith build ` | Build a static HTML documentation site. |
| `docsmith convert --to ` | Convert docs to HTML, Markdown, text, JSON, or PDF. |
| `docsmith validate ` | Check broken local links, duplicate heading anchors, and missing headings. |
| `docsmith outline ` | Display a heading outline for one documentation file. |
| `docsmith search ` | Search documentation content. |
| `docsmith serve ` | Start a local Flask preview server. |
## Configuration
Docsmith works without configuration. The CLI accepts explicit paths and output flags for each command. A typical project layout is:
```text
docs/
index.md
guide.md
reference.md
site/
index.html
assets/docsmith.css
```
Use `--json-output` with `scan` or `outline` when integrating Docsmith into CI or project automation.
## License
MIT License. See [LICENSE](LICENSE).