bindcar 0.7.0

HTTP REST API for managing BIND9 zones via rndc
# Copyright (c) 2025 Erick Bourgeois, firestoned
# SPDX-License-Identifier: MIT

# bindcar Documentation - MkDocs Material Configuration

site_name: bindcar - BIND9 RNDC API
site_url: https://firestoned.github.io/bindcar/
site_description: A lightweight HTTP REST API server for managing BIND9 zones via rndc commands
site_author: Erick Bourgeois

# Repository
repo_url: https://github.com/firestoned/bindcar
repo_name: firestoned/bindcar
edit_uri: edit/main/docs/src/

# Documentation source directory (relative to mkdocs.yml location)
docs_dir: src
site_dir: site

# Copyright
copyright: Copyright © 2025 Erick Bourgeois, firestoned

# Configuration
theme:
  name: material
  language: en

  # Color palette with dark mode support
  palette:
    # Light mode
    - scheme: default
      primary: blue
      accent: indigo
      toggle:
        icon: material/brightness-7
        name: Switch to dark mode

    # Dark mode
    - scheme: slate
      primary: blue
      accent: indigo
      toggle:
        icon: material/brightness-4
        name: Switch to light mode

  # Font configuration
  font:
    text: Roboto
    code: Roboto Mono

  # Features
  features:
    # Navigation
    - navigation.instant       # Instant loading (SPA-like)
    - navigation.instant.progress  # Show loading progress
    - navigation.tracking      # Update URL with active anchor
    - navigation.tabs          # Top-level tabs
    - navigation.tabs.sticky   # Sticky tabs
    - navigation.sections      # Expand sections in sidebar
    - navigation.expand        # Expand all sections by default
    - navigation.path          # Show breadcrumb path
    - navigation.indexes       # Section index pages
    - navigation.top           # Back to top button

    # Table of contents
    - toc.follow               # TOC follows scroll

    # Search
    - search.suggest           # Search suggestions
    - search.highlight         # Highlight search terms
    - search.share             # Share search results

    # Header
    - header.autohide          # Auto-hide header on scroll

    # Content
    - content.code.copy        # Copy button for code blocks
    - content.code.annotate    # Code annotations
    - content.tabs.link        # Link content tabs
    - content.tooltips         # Improved tooltips

  # Icon configuration
  icon:
    repo: fontawesome/brands/github
    edit: material/pencil
    view: material/eye

# Plugins
plugins:
  # Search with advanced features
  - search:
      lang: en
      separator: '[\s\-,:!=\[\]()"/]+|(?!\b)(?=[A-Z][a-z])|\.(?!\d)|&[lg]t;'

  # Git revision date (last updated)
  - git-revision-date-localized:
      enable_creation_date: true
      type: timeago
      fallback_to_build_date: true
      enable_git_follow: false

# Extensions
markdown_extensions:
  # Python Markdown
  - abbr
  - admonition
  - attr_list
  - def_list
  - footnotes
  - md_in_html
  - tables
  - toc:
      permalink: true
      permalink_title: Anchor link to this section
      toc_depth: 3

  # PyMdown Extensions
  - pymdownx.arithmatex:
      generic: true
  - pymdownx.betterem:
      smart_enable: all
  - pymdownx.caret
  - 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
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.inlinehilite
  - pymdownx.keys
  - pymdownx.mark
  - pymdownx.smartsymbols
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_div_format
  - pymdownx.tabbed:
      alternate_style: true
      combine_header_slug: true
  - pymdownx.tasklist:
      custom_checkbox: true
  - pymdownx.tilde

# Extra CSS
# Note: Paths are relative to docs_dir (src/)
extra_css:
  - stylesheets/extra.css

# Extra JavaScript
# Note: Paths are relative to docs_dir (src/)
extra_javascript:
  - https://unpkg.com/mermaid@11.12.2/dist/mermaid.min.js
  - javascripts/mermaid-init.js

# Extra configuration
extra:
  # Social links
  social:
    - icon: fontawesome/brands/github
      link: https://github.com/firestoned/bindcar
      name: bindcar on GitHub

  # Generator notice
  generator: true

# Navigation structure
# Converted from docs/src/SUMMARY.md
nav:
  - Home: index.md

  - Getting Started:
      - Installation: getting-started/index.md
      - Prerequisites: getting-started/prerequisites.md
      - Quick Start: getting-started/quickstart.md
      - Basic Concepts:
          - Architecture: getting-started/architecture.md
          - API Design: getting-started/api-design.md

  - User Guide:
      - API Overview: user-guide/api-overview.md
      - Health & Status: user-guide/health-status.md
      - Zone Operations: user-guide/zone-operations.md
      - Managing DNS Zones:
          - Overview: user-guide/zones.md
          - Creating Zones: user-guide/creating-zones.md
          - Zone Configuration: user-guide/zone-config.md
          - Reloading Zones: user-guide/reloading-zones.md
          - Deleting Zones: user-guide/deleting-zones.md
          - Zone Status: user-guide/zone-status.md
      - Managing DNS Records:
          - Overview: user-guide/records.md
          - Managing Individual Records: user-guide/managing-records.md
          - DNS Record Types: user-guide/dns-records.md

  - Operations:
      - Deployment:
          - Overview: operations/deployment.md
          - Docker: operations/docker.md
          - Kubernetes: operations/kubernetes.md
      - Configuration:
          - Overview: operations/configuration.md
          - Environment Variables: operations/env-vars.md
          - Authentication: operations/authentication.md
      - Monitoring:
          - Overview: operations/monitoring.md
          - Logging: operations/logging.md
      - Troubleshooting: operations/troubleshooting.md

  - Advanced Topics:
      - High Availability: advanced/ha.md
      - Security:
          - Overview: advanced/security.md
          - Authentication & Authorization: advanced/auth.md
          - Access Control: advanced/access-control.md
          - DNSSEC: advanced/dnssec.md
      - Performance:
          - Overview: advanced/performance.md
          - Tuning: advanced/tuning.md
      - Integration:
          - Overview: advanced/integration.md
          - External DNS: advanced/external-dns.md

  - Developer Guide:
      - Development Setup: developer-guide/setup.md
      - Building from Source: developer-guide/building.md
      - Running Tests: developer-guide/testing.md
      - Architecture Deep Dive:
          - Overview: developer-guide/architecture-deep-dive.md
          - RNDC Integration: developer-guide/rndc-integration.md
          - RNDC Configuration Parser: developer-guide/rndc-parser.md
          - Kubernetes Token Validation: developer-guide/k8s-token-validation.md
      - Contributing: developer-guide/contributing.md

  - Reference:
      - API Reference: reference/api.md
      - Health Endpoints: reference/api-health.md
      - Zone Endpoints: reference/api-zones.md
      - Record Endpoints: reference/api-records.md
      - Status Codes: reference/api-status-codes.md
      - Examples: reference/examples.md
      - Rustdoc API: rustdoc.md

  - About:
      - Changelog: changelog.md
      - License: license.md