# Project information
site_name: Arista Network Test Automation - ANTA
site_author: Khelil Sator
site_description: Arista Network Test Automation
copyright: Copyright &copy; 2019 - 2024 Arista Networks

# Repository
repo_name: ANTA on Github
repo_url: https://github.com/aristanetworks/anta

# Configuration
use_directory_urls: true
theme:
  name: material
  features:
    - navigation.instant
    - navigation.top
    - content.tabs.link
    - content.code.copy
    # - toc.integrate
    - toc.follow
    - navigation.indexes
    - content.tabs.link
  highlightjs: true
  hljs_languages:
    - yaml
    - python
    - shell
  icon:
    repo: fontawesome/brands/github
    logo: fontawesome/solid/network-wired
  favicon: imgs/favicon.ico
  font:
    code: Fira Mono
  language: en
  include_search_page: false
  search_index_only: true
  palette:
    # Light mode
    - media: "(prefers-color-scheme: light)"
      scheme: default
      primary: white
      accent: blue
      toggle:
        icon: material/weather-night
        name: Switch to dark mode
    # Dark mode
    - media: "(prefers-color-scheme: dark)"
      scheme: slate
      primary: black
      accent: blue
      toggle:
        icon: material/weather-sunny
        name: Switch to light mode
  custom_dir: docs/overrides

extra:
  social:
    - icon: fontawesome/brands/github
      link: https://github.com/aristanetworks/anta
    - icon: fontawesome/brands/docker
      link: https://github.com/aristanetworks/anta/pkgs/container/anta
    - icon: fontawesome/brands/python
      link: https://pypi.org/project/anta/
  version:
    provider: mike
    default:
      - stable

extra_css:
  - stylesheets/extra.material.css

extra_javascript:
  - https://cdnjs.cloudflare.com/ajax/libs/tablesort/5.2.1/tablesort.min.js
  - https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/highlight.min.js

watch:
  - docs
  - anta

plugins:
  - gh-admonitions
  - mkdocstrings:
      default_handler: python
      custom_templates: docs/templates
      handlers:
        python:
          import:
            - https://docs.python.org/3/objects.inv
            - https://mkdocstrings.github.io/objects.inv
            - https://mkdocstrings.github.io/griffe/objects.inv
          options:
            docstring_style: numpy
            docstring_options:
              ignore_init_summary: true
            docstring_section_style: table
            heading_level: 2
            inherited_members: false
            merge_init_into_class: true
            separate_signature: true
            show_root_heading: true
            show_root_full_path: false
            show_signature_annotations: true
            show_symbol_type_heading: true
            show_symbol_type_toc: true
            signature_crossrefs: true
            # default filters here
            filters: ["!^_"]
            extensions:
              - griffe_warnings_deprecated:
                  kind: danger
                  title: Deprecated

  - search:
      lang: en
  - git-revision-date-localized:
      type: date
  - mike:
  - glightbox:
      background: none
      shadow: true
      touchNavigation: true
      loop: false
      effect: fade
      slide_effect: slide
      width: 90vw

markdown_extensions:
  - admonition
  - attr_list
  - codehilite:
      guess_lang: true
  - pymdownx.arithmatex
  - pymdownx.betterem:
      smart_enable: all
  - pymdownx.caret
  - pymdownx.critic
  - pymdownx.details
  - pymdownx.emoji:
      emoji_index: !!python/name:material.extensions.emoji.twemoji
      emoji_generator: !!python/name:material.extensions.emoji.to_svg
  - pymdownx.highlight
  - pymdownx.inlinehilite
  - pymdownx.magiclink
  - pymdownx.mark
  - pymdownx.smartsymbols
  - pymdownx.snippets:
      base_path:
        - docs
        - docs/snippets
        - examples
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.tabbed:
      alternate_style: true
  - pymdownx.tasklist:
      custom_checkbox: true
  - pymdownx.tilde
  - smarty
  - toc:
      separator: "-"
      # permalink: "#"
      permalink: true
      baselevel: 2

# TOC
docs_dir: docs/
nav:
  - Home: README.md
  - Getting Started: getting-started.md
  - Installation: requirements-and-installation.md
  - Inventory and Test catalog: usage-inventory-catalog.md
  - ANTA CLI:
      - Overview: cli/overview.md
      - NRFU: cli/nrfu.md
      - Execute commands: cli/exec.md
      - Inventory from CVP: cli/inv-from-cvp.md
      - Inventory from Ansible: cli/inv-from-ansible.md
      - Get Inventory Information: cli/get-inventory-information.md
      - Get Tests Information: cli/get-tests.md
      - Check commands: cli/check.md
      - Debug commands: cli/debug.md
      - Tag Management: cli/tag-management.md
  - Advanced Usages:
      - Caching in ANTA: advanced_usages/caching.md
      - Developing ANTA tests: advanced_usages/custom-tests.md
      - ANTA as a Python Library: advanced_usages/as-python-lib.md
  - Tests Documentation:
      - Overview: api/tests.md
      - AAA: api/tests/aaa.md
      - Adaptive Virtual Topology: api/tests/avt.md
      - BFD: api/tests/bfd.md
      - Configuration: api/tests/configuration.md
      - Connectivity: api/tests/connectivity.md
      - CVX: api/tests/cvx.md
      - Field Notices: api/tests/field_notices.md
      - Flow Tracking: api/tests/flow_tracking.md
      - GreenT: api/tests/greent.md
      - Hardware: api/tests/hardware.md
      - Interfaces: api/tests/interfaces.md
      - LANZ: api/tests/lanz.md
      - Logging: api/tests/logging.md
      - MLAG: api/tests/mlag.md
      - Multicast: api/tests/multicast.md
      - Profiles: api/tests/profiles.md
      - PTP: api/tests/ptp.md
      - Router Path Selection: api/tests/path_selection.md
      - Routing:
          - Generic: api/tests/routing.generic.md
          - BGP: api/tests/routing.bgp.md
          - OSPF: api/tests/routing.ospf.md
          - ISIS: api/tests/routing.isis.md
      - Security: api/tests/security.md
      - Services: api/tests/services.md
      - SNMP: api/tests/snmp.md
      - STP: api/tests/stp.md
      - STUN: api/tests/stun.md
      - Software: api/tests/software.md
      - System: api/tests/system.md
      - VXLAN: api/tests/vxlan.md
      - VLAN: api/tests/vlan.md
  - API Documentation:
      - Class Diagram: api/class-diagram.md
      - Device: api/device.md
      - Inventory: api/inventory.md
      - Catalog: api/catalog.md
      - Commands: api/commands.md
      - Tests:
          - AntaTest: api/tests/anta_test.md
          - Input Types: api/tests/types.md
          - Tests Documentation: /api/tests/
      - Result: api/result.md
      - Reporters:
          - Table: api/reporter/table.md
          - Markdown: api/reporter/markdown.md
          - CSV: api/reporter/csv.md
          - Jinja: api/reporter/jinja.md
      - Runner: api/runner.md
  - Troubleshooting ANTA: troubleshooting.md
  - Contributions: contribution.md
  - FAQ: faq.md
