# 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
            # sadly symbols are for insiders only
            # https://mkdocstrings.github.io/python/usage/configuration/headings/#show_symbol_type_toc
            # show_symbol_type_heading: true
            # show_symbol_type_toc: true
            # default filters here
            filters: ["!^_[^_]"]

  - 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/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:
    - Device: api/device.md
    - Inventory:
      - Inventory module: api/inventory.md
      - Inventory models: api/inventory.models.input.md
    - Test Catalog: api/catalog.md
    - Test:
      - Test models: api/models.md
      - Input Types:  api/types.md
    - Result Manager:
      - Result Manager module: api/result_manager.md
      - Result Manager models: api/result_manager_models.md
    - Reporter:
      - CSV reporter: api/csv_reporter.md
      - Markdown reporter: api/md_reporter.md
      - Other reporters: api/reporters.md
    - Runner: api/runner.md
  - Troubleshooting ANTA: troubleshooting.md
  - Contributions: contribution.md
  - FAQ: faq.md
