extra_css:
  - assets/css/extra.css

site_name: DiracX
repo_url: https://github.com/DIRACGrid/diracx
site_url: https://diracx.io/
site_description: >-
  Write your documentation in Markdown and create a professional static site in
  minutes – searchable, customizable, in 60+ languages, for all devices

theme:
  name: material
  palette:
    - media: "(prefers-color-scheme)"
      toggle:
        icon: material/theme-light-dark
        name: Switch to light mode
    - media: "(prefers-color-scheme: light)"
      scheme: default
      toggle:
        icon: material/weather-sunny
        name: Switch to dark mode
    - media: "(prefers-color-scheme: dark)"
      scheme: slate
      toggle:
        icon: material/weather-night
        name: Switch to system preference
  font:
    text: Roboto
    code: Roboto Mono
  logo: assets/images/logo.svg
  icon:
    logo: logo
  features:
    - content.action.edit
    - content.code.annotate
    - content.code.copy
    - content.tabs.link
    - header.autohide
    - navigation.expand
    - navigation.indexes
    - navigation.instant
    - navigation.instant.progress
    - navigation.tabs
    - navigation.tabs.sticky
  custom_dir: docs/overrides/

nav:
  - Home: index.md

  - Roadmap: roadmap.md

  - User Guide:
    - user/index.md
    - Getting started: user/tutorials/getting-started.md
    - Known installations: user/reference/known-installations.md
    - Tutorials:
      - user/tutorials/index.md
    - How-To:
      - user/how-to/index.md
    - Explanations:
      - user/explanations/index.md
    - Web:
      - user/web/index.md
      - Logging in: user/web/login_out.md
      - List and share applications: user/web/list_and_share_applications.md
      - Monitor jobs: user/web/monitor_jobs.md
    - Programmatic Usage:
      - user/reference/programmatic-usage/index.md
      - Command Line: user/reference/programmatic-usage/command-line-interface.md
      - Python: user/reference/programmatic-usage/python-interface.md
      - HTTPS: user/reference/programmatic-usage/https-interface.md
    - Reference:
      - user/reference/index.md
      - Client Config: user/reference/client-configuration.md

  - Administrator Guide:
    - admin/index.md
    - Tutorials:
      - admin/tutorials/index.md
      - Run locally: admin/tutorials/run_locally.md
      - Authentication: admin/tutorials/authentication.md
    - How-To:
      - admin/how-to/index.md
      - Installation:
        - admin/how-to/install/index.md
        - Installing kubernetes: admin/how-to/install/install-kubernetes.md
        - Convert CS: admin/how-to/install/convert-cs.md
        - Installing DiracX: admin/how-to/install/installing.md
        - Register the admin VO: admin/how-to/install/register-the-admin-vo.md
        - Register a VO: admin/how-to/install/register-a-vo.md
        - Embracing DiracX: admin/how-to/install/embracing.md
      - Debugging: admin/how-to/debugging.md
      - Upgrading: admin/how-to/upgrading.md
      - Rotate a secret: admin/how-to/rotate-a-secret.md
    - Explanations:
      - admin/explanations/index.md
      - Authentication: admin/explanations/authentication.md
      - User Management: admin/explanations/user-management.md
      - Configuration: admin/explanations/configuration.md
      - OpenTelemetry: admin/explanations/opentelemetry.md
      - Chart structure: admin/explanations/chart-structure.md
      - Databases: admin/explanations/database-management.md
      - Sandbox Store: admin/explanations/sandbox-store.md
    - Reference:
      - admin/reference/index.md
      - Security Model: admin/reference/security_model.md
      - Settings and Preferences: admin/reference/settings-and-preferences.md
      - Charts values: admin/reference/values.md
      - REFERENCE.md
      - RUN_PROD.md
      - SECURITY.md
      - SSO.md

  - Developer Guide:
    - dev/index.md
    - Getting started: dev/tutorials/getting-started.md
    - Tutorials:
      - dev/tutorials/index.md
      - Larger developments: dev/tutorials/larger-developments.md
      - Advanced tutorial: dev/tutorials/advanced-tutorial.md
      - Making changes: dev/tutorials/making-changes.md
      - Developing DiracX Web: dev/tutorials/develop-web.md
      - Run a full DiracX instance locally: dev/tutorials/run-locally.md
      - Play with auth: dev/tutorials/play-with-auth.md
    - How-To:
      - dev/how-to/index.md
      - Contribute: dev/how-to/contribute.md
      - Write docs: dev/tutorials/write-docs.md
      - Add functionality:
        - dev/how-to/add-functionality/index.md
        - New route or router: dev/how-to/add-a-route.md
        - New task: dev/how-to/add-a-task.md
        - New DB: dev/how-to/add-a-db.md
        - New CLI command: dev/how-to/add-a-cli-command.md
        - New settings: dev/how-to/add-a-setting.md
        - Add a test: dev/how-to/add-a-test.md
      - Extend DiracX:
        - dev/how-to/extend-diracx/index.md
      - Develop legacy DIRAC: dev/how-to/develop-legacy-dirac.md
      - Use the demo:
        - dev/how-to/use-the-demo/index.md
        - Accessing the client: dev/how-to/use-the-demo/swagger.md
        - Use swagger: dev/how-to/use-the-demo/swagger.md
        - Accessing DiracX Web: dev/how-to/use-the-demo/web.md
      - Client customization: dev/how-to/client-customization.md
      - Client generation: dev/how-to/client-generation.md
      - Client extensions: dev/how-to/client-extension.md
    - Web Development:  # TODO: These should move to fit into the new unified structure
      - Setup environment: dev/setup_environment.md
      - Manage extensions: dev/manage_extension.md
      - Web architecture: dev/web-arch.md
      - Create application: dev/how-to/create_application.md
      - Setup: developer/setup_environment.md
      - Contribute: developer/contribute.md
      - Manage extensions: developer/manage_extension.md
    - Explanations:
      - dev/explanations/index.md
      - Components:
        - dev/explanations/components/index.md
        - API: dev/explanations/components/api.md
        - CLI: dev/explanations/components/cli.md
        - Databases: dev/explanations/components/db.md
        - Routes: dev/explanations/components/routes.md
      - Client: dev/explanations/client.md
      - Testing: dev/explanations/testing.md
      - Run demo: dev/explanations/run_demo.md
      - Extensions: dev/explanations/extensions.md
      - Designing functionality: dev/explanations/designing-functionality.md
    - Reference:
      - dev/reference/index.md
      - Writing tests: dev/reference/writing-tests.md
      - Coding conventions: dev/reference/coding-conventions.md
      - Configuration: dev/reference/configuration.md
      - Dependency injection: dev/reference/dependency-injection.md
      - Application state: dev/reference/application-state.md
      - Client metapathfinder: dev/reference/client-metapathfinder.md
      - DB transaction model: dev/reference/db-transaction-model.md
      - Entrypoints: dev/reference/entrypoints.md
      - Pixi tasks: dev/reference/pixi-tasks.md
      - Security policies: dev/reference/security-policies.md
      - Security properties: dev/reference/security-properties.md
      - Test recipes: dev/reference/test-recipes.md

markdown_extensions:
  - admonition
  - md_in_html
  - def_list
  - pymdownx.tasklist:
      custom_checkbox: true
  - attr_list
  - pymdownx.emoji:
      emoji_index: !!python/name:material.extensions.emoji.twemoji
      emoji_generator: !!python/name:material.extensions.emoji.to_svg
  - pymdownx.details
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.inlinehilite
  - pymdownx.snippets
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.tabbed:
      alternate_style: true
  - tables

plugins:
  - diracx:
      repos:
        - url: https://github.com/DIRACGrid/diracx-charts
          branch: master
          include:
            - docs
            - diracx
        - url: https://github.com/DIRACGrid/diracx-web
          branch: main
          include:
            - docs
  - search
