site_name: Midas Slow Control Bus
site_description: Documentation for the MSCB bus, protocol, software, hardware, C API, and command-line tools
site_author: Stefan Ritt and MSCB contributors
site_url: https://elog.psi.ch/mscb/

docs_dir: docs
site_dir: site

theme:
  name: material
  language: en
  features:
    - navigation.instant
    - navigation.tabs
    - navigation.sections
    - navigation.top
    - navigation.footer
    - content.code.copy
    - content.tooltips
    - search.highlight
    - search.suggest
  palette:
    - media: "(prefers-color-scheme: light)"
      scheme: default
      primary: blue grey
      accent: deep orange
      toggle:
        icon: material/brightness-7
        name: Switch to dark mode
    - media: "(prefers-color-scheme: dark)"
      scheme: slate
      primary: blue grey
      accent: amber
      toggle:
        icon: material/brightness-4
        name: Switch to light mode
  icon:
    logo: material/access-point-network

nav:
  - Home: index.md
  - Overview:
      - What is MSCB?: overview/introduction.md
      - Architecture: overview/architecture.md
      - Getting started: getting-started.md
  - Protocol:
      - Protocol overview: protocol/index.md
      - Command reference: protocol/commands.md
      - Responses, variables, and units: protocol/responses.md
      - Ethernet transport: protocol/ethernet.md
      - Timing and retries: protocol/timing.md
  - Software:
      - Software overview: software/index.md
      - C library: software/c-library.md
      - C++ API: reference/mscbxx-api.md
      - Python library: software/python.md
      - Node and submaster firmware: software/firmware.md
  - Hardware:
      - RS-485 bus: hardware/bus.md
  - Reference:
      - C API: reference/c-api.md
      - Types, constants, and status codes: reference/types-and-status.md
      - msc command reference: reference/msc-cli.md

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

plugins:
  - search

extra_css:
  - assets/stylesheets/extra.css

extra_javascript:
  - https://unpkg.com/mermaid@11/dist/mermaid.min.js

copyright: >-
  MSCB documentation © PSI contributors. Source code and supplied
  hardware design files are distributed under the terms stated by the project.
