Metadata-Version: 2.4
Name: nf-docs
Version: 0.2.1
Summary: Generate API documentation for Nextflow pipelines by querying the Nextflow Language Server
Author: nf-docs contributors
License-Expression: Apache-2.0
Project-URL: Homepage, https://ewels.github.io/nf-docs/
Project-URL: Documentation, https://ewels.github.io/nf-docs/
Project-URL: Repository, https://github.com/ewels/nf-docs
Project-URL: Issues, https://github.com/ewels/nf-docs/issues
Project-URL: Bioconda, https://bioconda.github.io/recipes/nf-docs/README.html
Keywords: nextflow,documentation,bioinformatics,pipeline,lsp
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Documentation
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: rich-click>=1.7
Requires-Dist: pyyaml>=6.0
Requires-Dist: jinja2>=3.0
Requires-Dist: rich>=13.0
Requires-Dist: httpx>=0.25
Requires-Dist: markdown>=3.0
Requires-Dist: pygments>=2.0
Requires-Dist: pygments-csv-lexer>=0.1
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
Requires-Dist: ruff>=0.1; extra == "dev"
Requires-Dist: ty>=0.0.1a0; extra == "dev"
Provides-Extra: screenshots
Requires-Dist: playwright>=1.40; extra == "screenshots"
Requires-Dist: pillow>=10.0; extra == "screenshots"
Dynamic: license-file

<div align="center">

# nf-docs

**Generate beautiful API documentation for Nextflow pipelines**

[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)

![nf-docs demo](https://raw.githubusercontent.com/ewels/nf-docs/main/docs/images/demo.gif)

**[Full documentation →](https://ewels.github.io/nf-docs)**

Choose from 4 different output formats:

</div>

<table width="100%">
<tr>
<td width="33%">
<h3 align="center">HTML</h3>
<ul><li>Single-file output</li><li>Share anywhere, even offline</li><li>Full-text search built in</li></ul><hr>
</td>
<td width="33%">
<h3 align="center">Markdown</h3>
<ul><li>Multiple files or tables by section</li><li>Perfect for static site generators</li></ul><hr>
</td>
<td width="33%">
<h3 align="center">JSON / YAML</h3>
<ul><li>Machine-readable output</li><li>Build custom integrations</li><li>CI/CD friendly</li></ul><hr>
</td>
</tr>
</table>

## What is nf-docs?

<!-- prettier-ignore-start -->
> [!IMPORTANT]
> This is not an official Nextflow project. It's a fun side-project by
> [Phil Ewels](https://github.com/ewels). Please use at your own risk :)
<!-- prettier-ignore-end -->

Information is pulled from multiple sources to construct the docs (each only if available):

- **README.md** - Pipeline overview and description
- **nextflow.config** - Runtime configuration defaults
- **nextflow_schema.json** - Typed input parameters with descriptions and validation rules
- **Language Server** - Processes, workflows, functions with their Groovydoc comments
- **meta.yml** - nf-core module metadata (tools, keywords, authors)

The documentation for workflows, processes and functions is relatively unique. `nf-docs` extracts
this from your Nextflow pipelines by querying the
[Nextflow Language Server](https://github.com/nextflow-io/language-server). It produces structured
API documentation similar to Sphinx for Python or Javadoc for Java.

## Examples and docs

See https://ewels.github.io/nf-docs

## Quick Start

With [`uv`](https://docs.astral.sh/uv/):

```bash
uvx nf-docs generate ./my_pipeline
```

With `pip`:

```bash
# Install
pip install nf-docs

# Generate HTML documentation
nf-docs generate ./my_pipeline
```

With [Bioconda](https://bioconda.github.io/) (requires
[channel setup](https://bioconda.github.io/)):

```bash
pixi global install nf-docs
# or
conda install nf-docs
```

That's it! Open `docs/index.html` in your browser.

## Development

See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, testing, and contribution guidelines.

## License

Apache 2.0 - see [LICENSE](LICENSE) for details.
