site_name: Hatch
site_description: Modern, extensible Python project management
site_author: Ofek Lev
site_url: https://hatch.pypa.io
repo_name: pypa/hatch
repo_url: https://github.com/pypa/hatch
edit_uri: blob/master/docs
copyright: 'Copyright &copy; Ofek Lev 2017-present'

docs_dir: docs
site_dir: site
theme:
  name: material
  custom_dir: docs/.overrides
  language: en
  favicon: assets/images/logo.svg
  icon:
    repo: fontawesome/brands/github-alt
    logo: material/egg
  font:
    text: Roboto
    code: Roboto Mono
  palette:
    - media: "(prefers-color-scheme: dark)"
      scheme: slate
      primary: indigo
      accent: indigo
      toggle:
        icon: material/weather-night
        name: Switch to light mode
    - media: "(prefers-color-scheme: light)"
      scheme: default
      primary: indigo
      accent: indigo
      toggle:
        icon: material/weather-sunny
        name: Switch to dark mode
  features:
    - content.action.edit
    - content.code.copy
    - content.tabs.link
    - content.tooltips
    - navigation.expand
    - navigation.footer
    - navigation.instant
    - navigation.sections
    - navigation.tabs
    - navigation.tabs.sticky

nav:
  - Home:
    - About: index.md
    - Walkthrough:
      - Installation: install.md
      - Introduction: intro.md
      - Environments: environment.md
      - Versioning: version.md
      - Builds: build.md
      - Publishing: publish.md
    - Learn:
      - Next steps: next-steps.md
      - Why Hatch?: why.md
    - History:
      - Hatch: history/hatch.md
      - Hatchling: history/hatchling.md
    - Community:
      - Users: community/users.md
      - Highlights: community/highlights.md
      - Contributing: community/contributing.md
  - Configuration:
    - Metadata: config/metadata.md
    - Dependencies: config/dependency.md
    - Build: config/build.md
    - Environments:
      - Overview: config/environment/overview.md
      - Advanced: config/environment/advanced.md
    - Internal:
      - Testing: config/internal/testing.md
      - Static analysis: config/internal/static-analysis.md
      - Building: config/internal/build.md
    - Context formatting: config/context.md
    - Project templates: config/project-templates.md
    - Hatch: config/hatch.md
  - CLI:
    - About: cli/about.md
    - Reference: cli/reference.md
  - Plugins:
    - About: plugins/about.md
    - Builder:
      - Reference: plugins/builder/reference.md
      - Wheel: plugins/builder/wheel.md
      - Source distribution: plugins/builder/sdist.md
      - Binary: plugins/builder/binary.md
      - Custom: plugins/builder/custom.md
    - Build hook:
      - Reference: plugins/build-hook/reference.md
      - Version: plugins/build-hook/version.md
      - Custom: plugins/build-hook/custom.md
    - Metadata hook:
      - Reference: plugins/metadata-hook/reference.md
      - Custom: plugins/metadata-hook/custom.md
    - Environment:
      - Reference: plugins/environment/reference.md
      - Virtual: plugins/environment/virtual.md
    - Environment collector:
      - Reference: plugins/environment-collector/reference.md
      - Custom: plugins/environment-collector/custom.md
      - Default: plugins/environment-collector/default.md
    - Publisher:
      - Reference: plugins/publisher/reference.md
      - Index: plugins/publisher/package-index.md
    - Version source:
      - Reference: plugins/version-source/reference.md
      - Regex: plugins/version-source/regex.md
      - Code: plugins/version-source/code.md
      - Environment: plugins/version-source/env.md
    - Version scheme:
      - Reference: plugins/version-scheme/reference.md
      - Standard: plugins/version-scheme/standard.md
    - Utilities: plugins/utilities.md
  - How-to:
    - Meta:
      - Report issues: how-to/meta/report-issues.md
    - Integrate:
      - Visual Studio Code: how-to/integrate/vscode.md
    - Run:
      - Python scripts: how-to/run/python-scripts.md
    - Config:
      - Dynamic metadata: how-to/config/dynamic-metadata.md
    - Environments:
      - Select installer: how-to/environment/select-installer.md
      - Dependency resolution: how-to/environment/dependency-resolution.md
      - Workspace: how-to/environment/workspace.md
    - Static analysis:
      - Customize behavior: how-to/static-analysis/behavior.md
    - Python:
      - Custom distributions: how-to/python/custom.md
    - Publishing:
      - Authentication: how-to/publish/auth.md
      - Repository selection: how-to/publish/repo.md
    - Plugins:
      - Testing builds: how-to/plugins/testing-builds.md
  - Tutorials:
    - Python:
      - Management: tutorials/python/manage.md
    - Environments:
      - Basic usage: tutorials/environment/basic-usage.md
    - Testing:
      - Overview: tutorials/testing/overview.md
  - Meta:
    - FAQ: meta/faq.md
    - Authors: meta/authors.md
  - Blog:
    - blog/index.md

watch:
- backend/src/hatchling
- src/hatch

hooks:
- docs/.hooks/plugin_register.py
- docs/.hooks/title_from_content.py

plugins:
  # Enable for bug reports
  # info: {}
  # Built-in
  search: {}
  # Extra
  glightbox: {}
  minify:
    minify_html: true
  git-revision-date-localized:
    type: date
    strict: false
    # Required for blog plugin's generated indices
    fallback_to_build_date: true
    exclude:
      - blog/**/*
  mike:
    alias_type: copy
  mkdocstrings:
    default_handler: python
    handlers:
      python:
        paths:
          - src
        options:
          # Headings
          show_root_heading: true
          show_root_full_path: false
          # Docstrings
          show_if_no_docstring: true
          # Signatures/annotations
          show_signature_annotations: true
          # Other
          show_bases: false
  redirects:
    redirect_maps:
      config/environment.md: config/environment/overview.md
      config/static-analysis.md: config/internal/static-analysis.md
      history.md: history/hatch.md
      how-to/environment/package-indices.md: how-to/environment/dependency-resolution.md
      plugins/builder.md: plugins/builder/reference.md
      plugins/build-hook.md: plugins/build-hook/reference.md
      plugins/metadata-hook.md: plugins/metadata-hook/reference.md
      plugins/environment.md: plugins/environment/reference.md
      plugins/environment-collector.md: plugins/environment-collector/reference.md
      plugins/publisher.md: plugins/publisher/reference.md
      plugins/version-source.md: plugins/version-source/reference.md
      plugins/version-scheme.md: plugins/version-scheme/reference.md
      plugins/builder/app.md: plugins/builder/binary.md
      users.md: community/users.md

markdown_extensions:
  # Built-in
  - markdown.extensions.abbr:
  - markdown.extensions.admonition:
  - markdown.extensions.attr_list:
  - markdown.extensions.footnotes:
  - markdown.extensions.md_in_html:
  - markdown.extensions.meta:
  - markdown.extensions.tables:
  - markdown.extensions.toc:
      permalink: true
  # Extra
  - mkdocs-click:
  - pymdownx.arithmatex:
  - pymdownx.betterem:
      smart_enable: all
  - pymdownx.caret:
  - pymdownx.critic:
  - pymdownx.details:
  - pymdownx.emoji:
      # https://github.com/twitter/twemoji
      # https://raw.githubusercontent.com/facelessuser/pymdown-extensions/master/pymdownx/twemoji_db.py
      emoji_index: !!python/name:material.extensions.emoji.twemoji
      emoji_generator: !!python/name:material.extensions.emoji.to_svg
  - pymdownx.highlight:
      guess_lang: false
      linenums_style: pymdownx-inline
      use_pygments: true
  - pymdownx.inlinehilite:
  - pymdownx.keys:
  - pymdownx.magiclink:
      repo_url_shortener: true
      repo_url_shorthand: true
      social_url_shortener: true
      social_url_shorthand: true
      normalize_issue_symbols: true
      provider: github
      user: pypa
      repo: hatch
  - pymdownx.mark:
  - pymdownx.progressbar:
  - pymdownx.saneheaders:
  - pymdownx.smartsymbols:
  - pymdownx.snippets:
      check_paths: true
      base_path:
        - docs/.snippets
      auto_append:
        - links.txt
        - abbrs.txt
  - pymdownx.superfences:
  - pymdownx.tabbed:
      alternate_style: true
      slugify: !!python/object/apply:pymdownx.slugs.slugify
        kwds:
          case: lower
  - pymdownx.tasklist:
      custom_checkbox: true
  - pymdownx.tilde:

extra:
  version:
    provider: mike
  social:
    - icon: fontawesome/brands/github-alt
      link: https://github.com/ofek
    - icon: fontawesome/solid/blog
      link: https://ofek.dev/words/
    - icon: fontawesome/brands/twitter
      link: https://twitter.com/Ofekmeister
    - icon: fontawesome/brands/linkedin
      link: https://www.linkedin.com/in/ofeklev/
extra_css:
  - assets/css/custom.css
  - https://cdn.jsdelivr.net/npm/firacode@6.2.0/distr/fira_code.css
