site_name: vLLM-Omni
site_description: Efficient omni-modality model serving for everyone
site_author: vLLM-Omni Team
site_url: https://vllm-project.github.io/vllm-omni/

repo_name: vllm-project/vllm-omni
repo_url: https://github.com/vllm-project/vllm-omni
edit_uri: edit/main/docs/

# Copyright
copyright: Copyright &copy; 2026 vLLM-Omni Team

# Theme
theme:
  name: material
  logo: source/logos/vllm-logo-only-light.ico
  favicon: source/logos/vllm-logo-only-light.ico
  palette:
    # Palette toggle for automatic mode
    - media: "(prefers-color-scheme)"
      toggle:
        icon: material/brightness-auto
        name: Switch to light mode
    # Palette toggle for light mode
    - media: "(prefers-color-scheme: light)"
      scheme: default
      primary: white
      toggle:
        icon: material/brightness-7
        name: Switch to dark mode
    # Palette toggle for dark mode
    - media: "(prefers-color-scheme: dark)"
      scheme: slate
      primary: black
      toggle:
        icon: material/brightness-2
        name: Switch to system preference
  features:
    - content.action.edit
    - content.code.copy
    - navigation.tracking
    - navigation.tabs
    - navigation.tabs.sticky
    - navigation.sections
    - navigation.indexes
    - navigation.prune
    - navigation.top
    - search.suggest
    - search.highlight
    - search.share
    - content.code.annotate
    - content.tabs
    - content.tooltips
    - toc.follow
  custom_dir: docs/mkdocs/overrides

hooks:
  - docs/mkdocs/hooks/search_index.py
  - docs/mkdocs/hooks/generate_api_readme.py
  - docs/mkdocs/hooks/url_schemes.py
  - docs/mkdocs/hooks/generate_examples.py
  - docs/mkdocs/hooks/generate_argparse.py

# Exclude include files from navigation warnings
exclude_docs: |
  **/*.inc.md

# Plugins
plugins:
  - meta
  - search
  - autorefs
  - awesome-nav
  - glightbox
  - git-revision-date-localized:
      # exclude files
      exclude:
        - api/*
        # Hook-generated content under docs/generated/ is gitignored; no git history for per-file dates.
        - generated/**
        - user_guide/examples/**
        - contributing/design_documents/api_design_template.md
        - DOCS_GUIDE.md
  - minify:
      minify_html: true
      minify_js: true
      minify_css: true
      cache_safe: true
      js_files: [docs/mkdocs/javascript/*.js]
      css_files: [docs/mkdocs/stylesheets/*.css]
  - api-autonav:
      modules: ["vllm_omni"]
      api_root_uri: "api"
      nav_item_prefix: ""  # No prefix in navigation tree (clean names)
      show_full_namespace: false  # Show only module name, not full path
      on_implicit_namespace_package: skip  # Skip directories without __init__.py (e.g., assets)
      exclude:
        - "re:vllm_omni\\._.*"  # Internal modules
        - "vllm_omni.diffusion.models.qwen_image"  # avoid importing vllm in mkdocs building
        - "vllm_omni.diffusion.quantization"  # avoid importing vllm in mkdocs building
        - "vllm_omni.quantization"  # avoid importing vllm in mkdocs building
        - "vllm_omni.entrypoints.async_diffusion"  # avoid importing vllm in mkdocs building
        - "vllm_omni.entrypoints.openai"  # avoid importing vllm in mkdocs building
        - "vllm_omni.entrypoints.openai.protocol"  # avoid importing vllm in mkdocs building
  - mkdocstrings:
      handlers:
        python:
          options:
            show_symbol_type_heading: true
            show_symbol_type_toc: true
            filters:
              - "!^_"  # Exclude private members (methods/classes starting with underscore)
            summary:
              modules: true
            show_if_no_docstring: true
            show_signature_annotations: true
            separate_signature: true
            show_overloads: true
            signature_crossrefs: true
            show_source: false
          inventories:
          - https://docs.python.org/3/objects.inv
          - https://typing-extensions.readthedocs.io/en/latest/objects.inv
          # Disabled because Read the Docs strict builds fail if this
          # external inventory intermittently resets the connection.
          # - https://docs.aiohttp.org/en/stable/objects.inv
          - https://pillow.readthedocs.io/en/stable/objects.inv
          - https://numpy.org/doc/stable/objects.inv
          # Temporarily disabled due to decompression errors
          # - https://pytorch.org/docs/stable/objects.inv
          - https://psutil.readthedocs.io/stable/objects.inv

markdown_extensions:
  - attr_list
  - md_in_html
  - admonition
  - pymdownx.details
  # For content tabs
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.tabbed:
      slugify: !!python/object/apply:pymdownx.slugs.slugify
        kwds:
          case: lower
      alternate_style: true
  # For code highlighting
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.inlinehilite
  - pymdownx.snippets
  # For emoji and icons
  - pymdownx.emoji:
      emoji_index: !!python/name:material.extensions.emoji.twemoji
      emoji_generator: !!python/name:material.extensions.emoji.to_svg
  # For in page [TOC] (not sidebar)
  - toc:
      permalink: true
  # For math rendering
  - pymdownx.arithmatex:
      generic: true

extra_css:
  - mkdocs/stylesheets/extra.css

extra_javascript:
  - mkdocs/javascript/memory.js
  - mkdocs/javascript/mathjax.js
  - mkdocs/javascript/mermaid.js
  - mkdocs/javascript/edit_and_feedback.js
  - mkdocs/javascript/slack_and_forum.js
