Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 11 additions & 13 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@


# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the OS, Python version, and other tools you might need
build:
os: ubuntu-24.04
tools:
python: "3.13"

# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: docs/conf.py
configuration: docs/conf.py
# Keep builds strict-ish without failing on the odd cross-file link.
fail_on_warning: false

# Optionally, but recommended,
# declare the Python requirements required to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
# python:
# install:
# - requirements: docs/requirements.txt

# HTML only: the mermaid diagrams need a headless browser to rasterize, which
# the PDF/epub builders don't have on Read the Docs.
formats: []

# Only the doc toolchain is installed — the docs are prose, so ConfLens itself
# (and its heavy LLM / NiceGUI deps) is never imported at build time.
python:
install:
- requirements: docs/requirements.txt
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
[![Stars](https://img.shields.io/github/stars/picaultj/conflens?logo=github&style=flat)](https://github.com/picaultj/conflens/stargazers)
[![Last commit](https://img.shields.io/github/last-commit/picaultj/conflens?logo=github)](https://github.com/picaultj/conflens/commits/main)
[![Issues](https://img.shields.io/github/issues/picaultj/conflens?logo=github)](https://github.com/picaultj/conflens/issues)
[![License: MPL 2.0](https://img.shields.io/badge/license-MPL%202.0-brightgreen.svg)](LICENSE)
[![License: MPL 2.0](https://img.shields.io/badge/license-MPL%202.0-brightgreen.svg)](https://github.com/picaultj/conflens/blob/main/LICENSE)
[![uv](https://img.shields.io/badge/managed%20by-uv-DE5FE9.svg?logo=uv&logoColor=white)](https://docs.astral.sh/uv/)
[![Built with NiceGUI](https://img.shields.io/badge/UI-NiceGUI-2b6cb0.svg)](https://nicegui.io)

Expand Down Expand Up @@ -77,7 +77,7 @@ ways:
plus `OPENAI_BASE_URL` for an OpenAI-compatible endpoint; `LITELLM_API_KEY`).
- **A `.env` file** in the directory you launch `conflens` from — same keys, one
`NAME=value` per line. It's loaded automatically from the current working
directory (from a clone, copy [`.env.example`](.env.example) as a starting
directory (from a clone, copy [`.env.example`](https://github.com/picaultj/conflens/blob/main/.env.example) as a starting
point). Real environment variables take precedence over `.env`.
- **The in-app “API key” field** at runtime.

Expand Down
Empty file added docs/_static/.gitkeep
Empty file.
39 changes: 39 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
"""Sphinx configuration for the ConfLens documentation.

The docs are plain Markdown (rendered through MyST), so this build never
imports ConfLens itself — no LLM/NiceGUI dependencies are needed on Read the
Docs. The version is read straight from ``pyproject.toml`` to keep it in sync
with the release that `release.yml` bumps.
"""

import tomllib
from pathlib import Path

_pyproject = tomllib.loads(
(Path(__file__).parent.parent / "pyproject.toml").read_text(encoding="utf-8")
)

project = "ConfLens"
author = _pyproject["project"]["authors"][0]["name"]
copyright = f"2025, {author}" # noqa: A001 - Sphinx expects this name
release = _pyproject["project"]["version"]
version = ".".join(release.split(".")[:2])

extensions = ["myst_parser", "sphinxcontrib.mermaid"]

exclude_patterns = ["_build", "requirements.txt", "Thumbs.db", ".DS_Store"]

# -- MyST ---------------------------------------------------------------------
# `colon_fence` lets directives be written as ::: blocks; heading anchors make
# the README's in-page "Contents" links (#quick-start, ...) resolve.
myst_enable_extensions = ["colon_fence", "deflist", "linkify", "substitution"]
myst_heading_anchors = 3

# Render GitHub-style ```mermaid fences (used throughout ARCHITECTURE.md and the
# README) through sphinxcontrib-mermaid instead of trying to syntax-highlight them.
myst_fence_as_directive = ["mermaid"]

# -- HTML ---------------------------------------------------------------------
html_theme = "furo"
html_title = f"{project} {release}"
html_static_path = ["_static"]
14 changes: 14 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# ConfLens

```{toctree}
:maxdepth: 2
:hidden:

ARCHITECTURE
```

```{include} ../README.md
:start-line: 1
:relative-docs: docs/
:relative-images:
```
5 changes: 5 additions & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Documentation toolchain for the Read the Docs build (see ../.readthedocs.yaml).
sphinx>=8.1
myst-parser[linkify]>=4.0
sphinxcontrib-mermaid>=1.0
furo>=2024.8.6
Loading