Metadata-Version: 2.4
Name: docs-hub
Version: 0.1.4
Summary: Scan your repos for docs/reports HTML and Markdown files and browse them from one local index page, with a web UI for config and cron scheduling.
License: MIT
Project-URL: Homepage, https://github.com/Arun-gox/docs-hub
Project-URL: Repository, https://github.com/Arun-gox/docs-hub
Project-URL: Issues, https://github.com/Arun-gox/docs-hub/issues
Keywords: documentation,markdown,html,monorepo,cron,index
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Documentation
Classifier: Topic :: Software Development :: Documentation
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Flask<4,>=3.0
Requires-Dist: markdown<4,>=3.5
Requires-Dist: python-crontab<4,>=3.0
Requires-Dist: platformdirs<5,>=4.0
Dynamic: license-file

# docs-hub

Scans one or more root folders for `.html`/`.md` files that live under a
`docs/` or `reports/` folder (at any depth), converts the Markdown ones to
HTML, and builds a single browsable index grouped by top-level repo/folder.
Runs locally on your own machine only — no hosting, no accounts, no data
leaves your filesystem.

## Install

```bash
pipx install .          # from this directory, or `pipx install docs-hub` once published
# or, in a venv:
pip install .
```

## Quick start

```bash
docs-hub config set roots=/path/to/your/projects
docs-hub scan            # one-off run
docs-hub ui              # http://127.0.0.1:5000 — dashboard, settings, cron
```

The web UI lets you:
- **Dashboard** — see last scan info and open the generated index.
- **Settings** — pick which root folder(s) to scan, which folder names count
  as "docs"/"reports", and which directories to skip.
- **Cron** — see whether a scheduled scan is installed, and install/update/
  remove it. This writes to your real user crontab, tagged with a
  `# docs-hub-scan` marker comment so it only ever touches its own job —
  your other cron jobs are left alone.

Config lives at `~/.config/docs-hub/config.json` (or your platform's
config-dir equivalent); generated output lives under
`~/.local/share/docs-hub` by default.

## CLI reference

```
docs-hub scan [--root PATH ...]
docs-hub ui [--port 5000] [--host 127.0.0.1]
docs-hub config show
docs-hub config set KEY=VALUE [KEY=VALUE ...]   # comma-separate list values
docs-hub cron install [--schedule "0 * * * *"]
docs-hub cron remove
docs-hub cron status
```

## Migrating from the old standalone `generate.py`

This repo previously shipped a single hardcoded script
(`generate.py`) with a raw crontab entry pointing at it directly. To move to
the packaged version:

```bash
pip install -e .                                    # from this directory
docs-hub config set roots=/home/arun/Arun/Projects   # restore the old scan target
docs-hub cron install --schedule "0 * * * *"         # replaces the raw crontab line
crontab -e                                           # remove the old raw generate.py line by hand
```

The old `converted/`, `index.html`, and `cron.log` produced by `generate.py`
are independent of the new package's output directory and can be left in
place or deleted once you've confirmed the new `docs-hub scan` output looks
right. Note that `docs-hub` (this folder) itself sits under
`/home/arun/Arun/Projects`, so it's included in the default
`exclude_dirs` list to avoid the scanner picking up its own cached output as
a phantom "repo".
