Metadata-Version: 2.2
Name: vdoc
Version: 0.1.0
Summary: Multi version documentation hosting.
Home-page: https://github.com/vorausrobotik/vdoc
Author: Jan-Frederik Schmidt
Author-email: jan-frederik.schmidt@vorausrobotik.com
License: MIT
Requires-Python: >=3.11
Description-Content-Type: text/x-rst
License-File: LICENSE.txt
Requires-Dist: importlib-metadata
Requires-Dist: packaging
Requires-Dist: fastapi
Requires-Dist: python-multipart
Requires-Dist: typer
Requires-Dist: rich
Requires-Dist: uvicorn
Requires-Dist: pydantic~=2.0
Requires-Dist: pydantic-settings~=2.0
Provides-Extra: dev
Requires-Dist: tox==4.23.2; extra == "dev"
Requires-Dist: tox-uv==1.16.0; extra == "dev"
Requires-Dist: isort==5.13.2; extra == "dev"
Requires-Dist: black==24.10.0; extra == "dev"
Requires-Dist: mypy==1.13.0; extra == "dev"
Requires-Dist: pylint==3.3.1; extra == "dev"
Requires-Dist: pytest==8.3.3; extra == "dev"
Requires-Dist: types-docutils; extra == "dev"
Requires-Dist: types-setuptools; extra == "dev"
Requires-Dist: jinja2==3.1.4; extra == "dev"
Requires-Dist: ruff==0.7.3; extra == "dev"
Requires-Dist: httpx; extra == "dev"
Requires-Dist: tenacity; extra == "dev"
Requires-Dist: requests; extra == "dev"
Requires-Dist: types-requests; extra == "dev"
Requires-Dist: pytest==8.3.3; extra == "dev"
Requires-Dist: pytest-randomly==3.16.0; extra == "dev"
Requires-Dist: pytest-cov==6.0.0; extra == "dev"
Requires-Dist: coverage[toml]==7.6.4; extra == "dev"
Requires-Dist: httpx; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: tenacity; extra == "dev"
Requires-Dist: requests; extra == "dev"
Requires-Dist: sphinx==8.1.3; extra == "dev"
Requires-Dist: sphinxawesome-theme==5.3.2; extra == "dev"
Requires-Dist: sphinx-selective-exclude==1.0.3; extra == "dev"
Requires-Dist: sphinx-autodoc-typehints==2.5.0; extra == "dev"
Requires-Dist: pip-licenses==5.0.0; extra == "dev"
Requires-Dist: jinja2==3.1.4; extra == "dev"
Requires-Dist: build[virtualenv]==1.2.1; extra == "dev"
Provides-Extra: lint
Requires-Dist: isort==5.13.2; extra == "lint"
Requires-Dist: black==24.10.0; extra == "lint"
Requires-Dist: mypy==1.13.0; extra == "lint"
Requires-Dist: pylint==3.3.1; extra == "lint"
Requires-Dist: pytest==8.3.3; extra == "lint"
Requires-Dist: types-docutils; extra == "lint"
Requires-Dist: types-setuptools; extra == "lint"
Requires-Dist: jinja2==3.1.4; extra == "lint"
Requires-Dist: ruff==0.7.3; extra == "lint"
Requires-Dist: httpx; extra == "lint"
Requires-Dist: tenacity; extra == "lint"
Requires-Dist: requests; extra == "lint"
Requires-Dist: types-requests; extra == "lint"
Provides-Extra: test
Requires-Dist: pytest==8.3.3; extra == "test"
Requires-Dist: pytest-randomly==3.16.0; extra == "test"
Requires-Dist: pytest-cov==6.0.0; extra == "test"
Requires-Dist: coverage[toml]==7.6.4; extra == "test"
Requires-Dist: httpx; extra == "test"
Requires-Dist: sphinx; extra == "test"
Requires-Dist: tenacity; extra == "test"
Requires-Dist: requests; extra == "test"
Provides-Extra: doc
Requires-Dist: sphinx==8.1.3; extra == "doc"
Requires-Dist: sphinxawesome-theme==5.3.2; extra == "doc"
Requires-Dist: sphinx-selective-exclude==1.0.3; extra == "doc"
Requires-Dist: sphinx-autodoc-typehints==2.5.0; extra == "doc"
Requires-Dist: pip-licenses==5.0.0; extra == "doc"
Requires-Dist: jinja2==3.1.4; extra == "doc"
Provides-Extra: build
Requires-Dist: build[virtualenv]==1.2.1; extra == "build"
Provides-Extra: tox
Requires-Dist: tox==4.23.2; extra == "tox"
Requires-Dist: tox-uv==1.16.0; extra == "tox"
Provides-Extra: lint-template
Requires-Dist: isort==5.13.2; extra == "lint-template"
Requires-Dist: black==24.10.0; extra == "lint-template"
Requires-Dist: mypy==1.13.0; extra == "lint-template"
Requires-Dist: pylint==3.3.1; extra == "lint-template"
Requires-Dist: pytest==8.3.3; extra == "lint-template"
Requires-Dist: types-docutils; extra == "lint-template"
Requires-Dist: types-setuptools; extra == "lint-template"
Requires-Dist: jinja2==3.1.4; extra == "lint-template"
Requires-Dist: ruff==0.7.3; extra == "lint-template"
Provides-Extra: test-template
Requires-Dist: pytest==8.3.3; extra == "test-template"
Requires-Dist: pytest-randomly==3.16.0; extra == "test-template"
Requires-Dist: pytest-cov==6.0.0; extra == "test-template"
Requires-Dist: coverage[toml]==7.6.4; extra == "test-template"
Provides-Extra: doc-template
Requires-Dist: sphinx==8.1.3; extra == "doc-template"
Requires-Dist: sphinxawesome-theme==5.3.2; extra == "doc-template"
Requires-Dist: sphinx-selective-exclude==1.0.3; extra == "doc-template"
Requires-Dist: sphinx-autodoc-typehints==2.5.0; extra == "doc-template"
Requires-Dist: pip-licenses==5.0.0; extra == "doc-template"
Requires-Dist: jinja2==3.1.4; extra == "doc-template"
Provides-Extra: build-template
Requires-Dist: build[virtualenv]==1.2.1; extra == "build-template"

.. image:: https://github.com/vorausrobotik/vdoc/actions/workflows/pipeline.yml/badge.svg
    :target: https://github.com/vorausrobotik/vdoc/actions/workflows/pipeline.yml
    :class: badge
.. image:: https://img.shields.io/pypi/pyversions/vdoc
    :target: https://pypi.org/project/vdoc
    :class: badge
.. image:: https://img.shields.io/pypi/v/vdoc
    :target: https://pypi.org/project/vdoc
    :class: badge
.. image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
    :target: https://pycqa.github.io/isort/
    :class: badge
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/psf/black
    :class: badge

####
vdoc
####

Multi version documentation hosting.


Basic usage
###########


Run **vdoc** with python
************************

..  code-block:: shell

    pip install vdoc
    vdoc run


Run **vdoc** with docker
************************

.. warning::

   Make sure that you're building the python package and the docker image locally before running this command.
   This can be removed as soon as vdoc is available on docker hub


..  code-block:: shell

    docker run -p 8080:8080 -v ./vdoc-docs:/srv/vdoc/docs/ vdoc:latest


Building vdoc
#############

..  code-block:: shell

    # Prepare development environment
    npm ci
    python -m venv venv
    source venv/bin/activate
    pip install --upgrade pip tox

    # Build UI
    npm run build

    # Build docs
    tox run -e docs

    # Build python package
    tox run -e build

    # Build local docker image
    docker build -t vdoc:latest .


Configuration
#############

**vdoc** can be configured via environment variables. Internally, it uses
`pydantic-settings <https://docs.pydantic.dev/latest/concepts/pydantic_settings/>`_ for building the configuration.
All configuration environment variables are prefixed with ``VDOC_``:


.. list-table:: VDoc Configuration
   :widths: 25 50 25
   :header-rows: 1

   * - Environment variable
     - Explanation
     - Default
   * - ``VDOC_DOCS_DIR``
     - The directory to which all project documentations will be uploaded to.
     - ``/srv/vdoc/docs/``
