|
1 | | -# Great Docs |
| 1 | +<p align="center"> |
| 2 | +<a href="https://posit-dev.github.io/great-docs/"> |
| 3 | +<img src="assets/logo.svg" alt="Great Docs" width="350"> |
| 4 | +</a> |
| 5 | +</p> |
| 6 | +<p align="center">Professional documentation for Python packages. One command, zero configuration.</p> |
| 7 | +<p align="center"> |
| 8 | +<a href="https://pypi.org/project/great-docs/"><img src="https://img.shields.io/pypi/v/great-docs?logo=python&logoColor=white&color=orange" alt="PyPI"></a> |
| 9 | +<a href="https://pypi.org/project/great-docs/"><img src="https://img.shields.io/pypi/pyversions/great-docs.svg" alt="Python versions"></a> |
| 10 | +<a href="https://pypistats.org/packages/great-docs"><img src="https://img.shields.io/pypi/dm/great-docs" alt="Downloads"></a> |
| 11 | +<a href="https://choosealicense.com/licenses/mit/"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="MIT License"></a> |
| 12 | +<a href="https://github.com/posit-dev/great-docs/actions/workflows/test.yml"><img src="https://github.com/posit-dev/great-docs/actions/workflows/test.yml/badge.svg?branch=main" alt="CI"></a> |
| 13 | +</p> |
2 | 14 |
|
3 | | -[](https://pypi.org/project/great-docs/) |
4 | | -[](https://pypi.org/project/great-docs/) |
5 | | -[](https://pypistats.org/packages/great-docs) |
6 | | -[](https://choosealicense.com/licenses/mit/) |
7 | | -[](https://github.com/posit-dev/great-docs/actions/workflows/test.yml) |
8 | | -[](https://www.repostatus.org/#active) |
9 | | -[](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html) |
| 15 | +--- |
10 | 16 |
|
11 | | -Great Docs automatically creates professional documentation with auto-generated API references, CLI documentation, smart navigation, and modern styling. |
| 17 | +Great Docs turns your Python package into a polished documentation site in seconds. It auto-discovers your public API, detects your docstring format, generates structured reference pages, and renders a modern site — all from a single command. No templates to configure, no manual page authoring, no build system to learn. |
12 | 18 |
|
13 | | -## Features |
| 19 | +<p align="center"> |
| 20 | +<img src="https://posit-dev.github.io/great-docs/assets/great-docs-site.png" alt="A documentation site generated by Great Docs" width="720"> |
| 21 | +</p> |
14 | 22 |
|
15 | | -- **One-command setup** — `great-docs init` creates your entire docs site |
16 | | -- **Auto-generated API docs** — discovers and documents your package's public API |
17 | | -- **Docstring detection** — automatically detects NumPy, Google, or Sphinx style |
18 | | -- **CLI documentation** — generates reference pages for Click-based CLIs |
19 | | -- **Smart organization** — intelligent class/method/function categorization |
20 | | -- **User Guide support** — write narrative documentation alongside API reference |
21 | | -- **Source links** — automatic links to source code on GitHub |
22 | | -- **LLM-friendly** — auto-generates `llms.txt` and `llms-full.txt` for AI documentation indexing |
23 | | -- **GitHub Pages ready** — one command sets up deployment workflow |
| 23 | +## Why Great Docs? |
24 | 24 |
|
25 | | -## Quick Start |
| 25 | +Writing documentation shouldn't be harder than writing the code it describes. Most documentation generators require you to author page templates, organize content by hand, and wire up a build system. Great Docs inverts that: point it at a Python package and it handles the rest. |
26 | 26 |
|
27 | | -### Install |
| 27 | +- **Instant setup** — `great-docs init` inspects your package and generates a complete config |
| 28 | +- **Zero manual authoring** — API reference pages are created automatically from your code |
| 29 | +- **Real documentation, not stubs** — renders full parameter tables, return types, examples, and cross-references from your existing docstrings |
| 30 | +- **Looks great out of the box** — gradient navbars, dark mode, responsive layout, GitHub widget, sidebar search |
| 31 | +- **Deploys anywhere** — one command creates a GitHub Actions workflow for GitHub Pages |
| 32 | + |
| 33 | +## Get Started in 60 Seconds |
28 | 34 |
|
29 | | -Great Docs is not yet available on PyPI, so, install from GitHub: |
| 35 | +### Install |
30 | 36 |
|
31 | 37 | ```bash |
32 | | -pip install git+https://github.com/posit-dev/great-docs.git |
| 38 | +pip install great-docs |
33 | 39 | ``` |
34 | 40 |
|
35 | | -### Initialize |
36 | | - |
37 | | -Navigate to your Python project and run: |
| 41 | +### Initialize, build, and preview |
38 | 42 |
|
39 | 43 | ```bash |
40 | | -great-docs init |
| 44 | +cd your-python-package |
| 45 | + |
| 46 | +great-docs init # auto-detect package, generate config |
| 47 | +great-docs build # generate and render the site |
| 48 | +great-docs preview # open in your browser at localhost:3000 |
41 | 49 | ``` |
42 | 50 |
|
43 | | -This auto-detects your package and creates a `great-docs.yml` configuration file with your API structure. |
| 51 | +That's it. Your documentation site is ready. |
44 | 52 |
|
45 | | -### Build |
| 53 | +## What Gets Generated |
46 | 54 |
|
47 | | -```bash |
48 | | -great-docs build |
49 | | -``` |
| 55 | +Every site built by Great Docs includes: |
50 | 56 |
|
51 | | -This creates the `great-docs/` directory with all assets and builds your site to `great-docs/_site/`. |
| 57 | +### Landing Page |
52 | 58 |
|
53 | | -### Preview |
| 59 | +Your README is transformed into a landing page with a hero section, metadata sidebar (authors, license, links), and quick-start instructions. |
54 | 60 |
|
55 | | -```bash |
56 | | -great-docs preview |
| 61 | +### API Reference |
| 62 | + |
| 63 | +Classes, functions, methods, and attributes are automatically organized into categorized sections. Large classes get dedicated method pages. Every item links back to source code on GitHub. |
| 64 | + |
| 65 | +<p align="center"> |
| 66 | +<img src="https://posit-dev.github.io/great-docs/assets/api-reference-index.png" alt="API reference index with categorized sections" width="720"> |
| 67 | +</p> |
| 68 | + |
| 69 | +<details> |
| 70 | +<summary>See more: class page and method page</summary> |
| 71 | +<br> |
| 72 | +<p align="center"> |
| 73 | +<img src="https://posit-dev.github.io/great-docs/assets/class-page.png" alt="A class documentation page with parameters and methods" width="720"> |
| 74 | +</p> |
| 75 | +<p align="center"> |
| 76 | +<img src="https://posit-dev.github.io/great-docs/assets/method-page.png" alt="A method documentation page with signature and examples" width="720"> |
| 77 | +</p> |
| 78 | +</details> |
| 79 | + |
| 80 | +### CLI Reference |
| 81 | + |
| 82 | +Click-based CLIs are documented automatically with `--help` output rendered in terminal style, organized by command group. |
| 83 | + |
| 84 | +<p align="center"> |
| 85 | +<img src="https://posit-dev.github.io/great-docs/assets/cli-page.png" alt="CLI reference page with terminal-style help output" width="720"> |
| 86 | +</p> |
| 87 | + |
| 88 | +### Dark Mode |
| 89 | + |
| 90 | +A persistent dark mode toggle with flash-free loading. Your users' preference is remembered across visits. |
| 91 | + |
| 92 | +<p align="center"> |
| 93 | +<img src="https://posit-dev.github.io/great-docs/assets/dark-mode.png" alt="Documentation site in dark mode" width="720"> |
| 94 | +</p> |
| 95 | + |
| 96 | +## Full Feature Set |
| 97 | + |
| 98 | +<table> |
| 99 | +<tr> |
| 100 | +<td width="50%" valign="top"> |
| 101 | + |
| 102 | +**Documentation Generation** |
| 103 | + |
| 104 | +- Auto-discovers exports via `__all__`, `dir()`, or static analysis |
| 105 | +- Detects NumPy, Google, and Sphinx docstring formats |
| 106 | +- 13 object types with smart categorization |
| 107 | +- Click CLI documentation |
| 108 | +- User Guide pages from `user_guide/` directory |
| 109 | +- Custom sections (recipes, blog, tutorials, etc.) |
| 110 | + |
| 111 | +</td> |
| 112 | +<td width="50%" valign="top"> |
| 113 | + |
| 114 | +**Site Features** |
| 115 | + |
| 116 | +- Dark mode toggle with persistent preference |
| 117 | +- GitHub widget with live star/fork counts |
| 118 | +- Sidebar search filter for large APIs |
| 119 | +- Source links to GitHub for every item |
| 120 | +- Copy-to-clipboard for code blocks |
| 121 | +- Responsive, mobile-friendly layout |
| 122 | + |
| 123 | +</td> |
| 124 | +</tr> |
| 125 | +<tr> |
| 126 | +<td width="50%" valign="top"> |
| 127 | + |
| 128 | +**AI & LLM Integration** |
| 129 | + |
| 130 | +- Auto-generates `llms.txt` and `llms-full.txt` |
| 131 | +- Agent Skills generation ([agentskills.io](https://agentskills.io/) compliant) |
| 132 | +- Markdown page generation for LLM consumption |
| 133 | + |
| 134 | +</td> |
| 135 | +<td width="50%" valign="top"> |
| 136 | + |
| 137 | +**Configuration & Branding** |
| 138 | + |
| 139 | +- Announcement banners (dismissible, styled) |
| 140 | +- Logo with light/dark variants |
| 141 | +- Custom favicon and Open Graph images |
| 142 | +- Author metadata with ORCID support |
| 143 | +- Changelog from GitHub Releases |
| 144 | + |
| 145 | +</td> |
| 146 | +</tr> |
| 147 | +<tr> |
| 148 | +<td width="50%" valign="top"> |
| 149 | + |
| 150 | +**Quality & Reliability** |
| 151 | + |
| 152 | +- Built-in link checker |
| 153 | +- Spell checking |
| 154 | +- Tested against 215+ synthetic packages |
| 155 | +- 9,300+ unit tests |
| 156 | + |
| 157 | +</td> |
| 158 | +<td width="50%" valign="top"> |
| 159 | + |
| 160 | +**Deployment** |
| 161 | + |
| 162 | +- One-command GitHub Pages setup |
| 163 | +- GitHub Actions workflow generation |
| 164 | +- Custom domain support |
| 165 | +- Static output — host anywhere |
| 166 | + |
| 167 | +</td> |
| 168 | +</tr> |
| 169 | +</table> |
| 170 | + |
| 171 | +## Configuration |
| 172 | + |
| 173 | +All configuration lives in a single `great-docs.yml` file in your project root. The `init` command generates it for you, but you can customize everything: |
| 174 | + |
| 175 | +```yaml |
| 176 | +# Theming |
| 177 | +navbar_style: sky |
| 178 | +content_style: lilac |
| 179 | +dark_mode_toggle: true |
| 180 | + |
| 181 | +# Branding |
| 182 | +display_name: My Package |
| 183 | +logo: |
| 184 | + light: assets/logo.svg |
| 185 | + dark: assets/logo-dark.svg |
| 186 | + |
| 187 | +# Announcement banner |
| 188 | +announcement: |
| 189 | + content: "v2.0 is here!" |
| 190 | + style: mint |
| 191 | + dismissable: true |
| 192 | + |
| 193 | +# GitHub integration |
| 194 | +github_style: widget |
| 195 | + |
| 196 | +# CLI documentation |
| 197 | +cli: |
| 198 | + enabled: true |
| 199 | + module: my_package.cli |
| 200 | + name: cli |
| 201 | + |
| 202 | +# Custom sections |
| 203 | +sections: |
| 204 | + - title: Recipes |
| 205 | + dir: recipes |
| 206 | + navbar_after: User Guide |
57 | 207 | ``` |
58 | 208 |
|
59 | | -Opens the built site in your browser. |
| 209 | +See the [Configuration Guide](https://posit-dev.github.io/great-docs/user-guide/configuration.html) for the full reference. |
60 | 210 |
|
61 | | -### Deploy |
| 211 | +## Deploying to GitHub Pages |
62 | 212 |
|
63 | 213 | ```bash |
64 | 214 | great-docs setup-github-pages |
65 | 215 | ``` |
66 | 216 |
|
67 | | -Creates a GitHub Actions workflow for automatic deployment. |
| 217 | +This creates a `.github/workflows/` file that builds and publishes your site on every push to `main`. Your docs stay in sync with your code automatically. |
| 218 | + |
| 219 | +## Recipes |
68 | 220 |
|
69 | | -## What You Get |
| 221 | +The documentation includes 18 step-by-step recipes: |
70 | 222 |
|
71 | | -- **Landing page** from your README with a metadata sidebar (authors, license, links) |
72 | | -- **API reference** with classes, functions, and methods organized and styled |
73 | | -- **CLI reference** with `--help` output in terminal style |
74 | | -- **User Guide** from your `user_guide/` directory |
75 | | -- **Source links** to GitHub for every documented item |
76 | | -- **Mobile-friendly** responsive design |
| 223 | +| Recipe | Topic | |
| 224 | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ | |
| 225 | +| [Hide Internal Symbols](https://posit-dev.github.io/great-docs/recipes/hide-internal-symbols.html) | Control what appears in your API reference | |
| 226 | +| [Customize API Organization](https://posit-dev.github.io/great-docs/recipes/customize-api-organization.html) | Structure reference sections your way | |
| 227 | +| [Document a CLI](https://posit-dev.github.io/great-docs/recipes/document-a-cli.html) | Auto-generate CLI reference from Click | |
| 228 | +| [Cross-Reference Items](https://posit-dev.github.io/great-docs/recipes/cross-reference-items.html) | Link between documented objects | |
| 229 | +| [Add Custom CSS](https://posit-dev.github.io/great-docs/recipes/add-custom-css.html) | Override styles with your own SCSS | |
| 230 | +| [Choose Gradient Theme](https://posit-dev.github.io/great-docs/recipes/choose-gradient-theme.html) | Pick and customize navbar gradients | |
| 231 | +| [Add Logo & Favicon](https://posit-dev.github.io/great-docs/recipes/add-logo-favicon.html) | Brand your site with custom icons | |
| 232 | +| [Customize Announcement Banner](https://posit-dev.github.io/great-docs/recipes/customize-announcement-banner.html) | Add dismissible site-wide notices | |
| 233 | +| [Write Effective Docstrings](https://posit-dev.github.io/great-docs/recipes/write-effective-docstrings.html) | Get the most out of auto-generated docs | |
| 234 | +| [Add Images & Diagrams](https://posit-dev.github.io/great-docs/recipes/add-images-diagrams.html) | Include visuals in your documentation | |
| 235 | +| [Create Changelog](https://posit-dev.github.io/great-docs/recipes/create-changelog.html) | Pull changelog from GitHub Releases | |
| 236 | +| [GitHub Pages & CI](https://posit-dev.github.io/great-docs/recipes/github-pages-ci.html) | Automate deployment with Actions | |
| 237 | +| [Add Custom Domain](https://posit-dev.github.io/great-docs/recipes/add-custom-domain.html) | Serve docs from your own domain | |
| 238 | +| [Install Great Docs Skill](https://posit-dev.github.io/great-docs/recipes/install-great-docs-skill.html) | Generate an Agent Skill for your package | |
| 239 | +| [Build Site with LLM](https://posit-dev.github.io/great-docs/recipes/build-site-with-llm.html) | Use an AI assistant to set up your site | |
| 240 | +| [Customize Site with LLM](https://posit-dev.github.io/great-docs/recipes/customize-site-with-llm.html) | Use an AI assistant to tweak your site | |
| 241 | +| [Understand llms.txt](https://posit-dev.github.io/great-docs/recipes/understand-llms-txt.html) | Make your docs AI-accessible | |
| 242 | +| [Fix Common Build Errors](https://posit-dev.github.io/great-docs/recipes/fix-common-build-errors.html) | Troubleshoot build issues quickly | |
77 | 243 |
|
78 | 244 | ## Documentation |
79 | 245 |
|
80 | | -The User Guide covers: |
81 | | - |
82 | | -- [Installation](https://posit-dev.github.io/great-docs/user-guide/installation.html) |
83 | | -- [Quick Start](https://posit-dev.github.io/great-docs/user-guide/quickstart.html) |
84 | | -- [Configuration](https://posit-dev.github.io/great-docs/user-guide/configuration.html) |
85 | | -- [Theming & Appearance](https://posit-dev.github.io/great-docs/user-guide/theming.html) |
86 | | -- [Cross-Referencing](https://posit-dev.github.io/great-docs/user-guide/cross-referencing.html) |
87 | | -- [API Documentation](https://posit-dev.github.io/great-docs/user-guide/api-documentation.html) |
88 | | -- [CLI Documentation](https://posit-dev.github.io/great-docs/user-guide/cli-documentation.html) |
89 | | -- [User Guides](https://posit-dev.github.io/great-docs/user-guide/user-guides.html) |
90 | | -- [Custom Sections](https://posit-dev.github.io/great-docs/user-guide/custom-sections.html) |
91 | | -- [Blog](https://posit-dev.github.io/great-docs/user-guide/blog.html) |
92 | | -- [Building & Previewing](https://posit-dev.github.io/great-docs/user-guide/building.html) |
93 | | -- [Deployment](https://posit-dev.github.io/great-docs/user-guide/deployment.html) |
94 | | -- [Link Checker](https://posit-dev.github.io/great-docs/user-guide/link-checker.html) |
95 | | -- [Spell Checking](https://posit-dev.github.io/great-docs/user-guide/spell-checker.html) |
96 | | -- [Changelog](https://posit-dev.github.io/great-docs/user-guide/changelog.html) |
| 246 | +Full documentation is available at **[posit-dev.github.io/great-docs](https://posit-dev.github.io/great-docs/)**: |
| 247 | + |
| 248 | +- [Installation](https://posit-dev.github.io/great-docs/user-guide/installation.html) — setup and requirements |
| 249 | +- [Quick Start](https://posit-dev.github.io/great-docs/user-guide/quickstart.html) — first site in minutes |
| 250 | +- [Configuration](https://posit-dev.github.io/great-docs/user-guide/configuration.html) — every option explained |
| 251 | +- [Theming & Appearance](https://posit-dev.github.io/great-docs/user-guide/theming.html) — gradients, colors, dark mode |
| 252 | +- [API Documentation](https://posit-dev.github.io/great-docs/user-guide/api-documentation.html) — how API references are generated |
| 253 | +- [CLI Documentation](https://posit-dev.github.io/great-docs/user-guide/cli-documentation.html) — documenting Click CLIs |
| 254 | +- [Deployment](https://posit-dev.github.io/great-docs/user-guide/deployment.html) — GitHub Pages and beyond |
| 255 | + |
| 256 | +## Requirements |
| 257 | + |
| 258 | +- **Python 3.11+** |
| 259 | +- **[Quarto](https://quarto.org/docs/get-started/)** (the rendering engine) |
| 260 | + |
| 261 | +## Contributing |
| 262 | + |
| 263 | +Contributions are welcome. Please see [CONTRIBUTING](https://posit-dev.github.io/great-docs/contributing.html) for guidelines and the [Code of Conduct](https://posit-dev.github.io/great-docs/code-of-conduct.html). |
97 | 264 |
|
98 | 265 | ## License |
99 | 266 |
|
100 | | -MIT License. See [LICENSE](https://posit-dev.github.io/great-docs/license.html) for details. |
| 267 | +MIT License. See [LICENSE](LICENSE) for details. |
| 268 | + |
| 269 | +--- |
| 270 | + |
| 271 | +<p align="center"> |
| 272 | +Built by <a href="https://posit.co">Posit</a> |
| 273 | +</p> |
0 commit comments