site_name: USGS Astrogeology Software Docs

theme:
    name: material
    custom_dir: custom_theme/
    icon:
      annotation: material/chevron-right-circle
    font:
      text: Inter
      code: Roboto Mono
    
    features:
        - navigation.tabs
        - navigation.path
        - navigation.indexes
        - search.suggest
        - search.suggest
        - content.code.copy

    palette:
        # Palette toggle for dark mode
        - media: "(prefers-color-scheme: dark)"
          scheme: slate
          accent: light blue
          toggle:
            icon: material/toggle-switch-off-outline
            name: Switch to light mode

        # Palette toggle for light mode
        - media: "(prefers-color-scheme: light)"
          scheme: default
          accent: light blue
          toggle:
            icon: material/toggle-switch
            name: Switch to dark mode


nav:
  - Home: index.md
  - Getting Started: 
    - Home: getting-started/index.md
    - CSM Stack:
      - Generating an ISD, creating a CSM model, and converting coordinates: getting-started/csm-stack/image-to-ground-tutorial.ipynb
    - "Using ISIS: First Steps":
      - Introduction to ISIS:              getting-started/using-isis-first-steps/introduction-to-isis.md
      - Locating and Ingesting Image Data: getting-started/using-isis-first-steps/locating-and-ingesting-image-data.md
      - Adding SPICE:                      getting-started/using-isis-first-steps/adding-spice.md
      - Exporting ISIS Data:               getting-started/using-isis-first-steps/exporting-isis-data.md
      - ISIS FAQ:                          getting-started/using-isis-first-steps/isis-faq.md
  - How-To Guides: 
    - Home: how-to-guides/index.md
    - Environment Setup and Maintenance:
      - Installing ISIS Via Anaconda:      how-to-guides/environment-setup-and-maintenance/installing-isis-via-anaconda.md
      - Anaconda in a Network Environment: how-to-guides/environment-setup-and-maintenance/anaconda-in-a-network-environment.md
      - SPICE Kernel Updates in ISIS:      how-to-guides/environment-setup-and-maintenance/spice-kernel-updates-in-isis.md
      - Adding USGSCSM Plugin to ISIS:     how-to-guides/environment-setup-and-maintenance/adding-usgscsm-plugin-to-isis.md
    - SPICE: 
      - Creating Spice Config Files in SpiceQL: how-to-guides/SPICE/creating-spice-config-files-in-spiceql.md
    - Image Processing:
      - Map Projecting Images:             how-to-guides/image-processing/map-projecting-images.md
      - Removing Striping Noise:           how-to-guides/image-processing/removing-striping-noise.md
      - General Utility with FX:           how-to-guides/image-processing/general-utility-with-fx.md
      - Bundle Adjustment in ISIS:         how-to-guides/image-processing/bundle-adjustment-in-isis.md
    - Software Management:
      - Public Release Process:            how-to-guides/software-management/public-release-process.md
      - Software Support:                  how-to-guides/software-management/software-support.md
      - Guidelines for Reporting Issues:   how-to-guides/software-management/guidelines-for-reporting-issues.md
      - Guidelines for Pull Requests:      how-to-guides/software-management/guidelines-for-pull-requests.md
      - ISIS Release Schedule:             how-to-guides/software-management/isis-release-schedule.md
    - ISIS Developer Guides:
      - How To Write ISIS Tests with CTest and GTest: how-to-guides/isis-developer-guides/writing-isis-tests-with-ctest-and-gtest.md
      - App Testing CookBook:                         how-to-guides/isis-developer-guides/app-testing-cookbook.md
      - Class Requirements For Using Doxygen Tags:    how-to-guides/isis-developer-guides/class-requirements-for-using-doxygen-tags.md
      - Developing ISIS3 with cmake:                  how-to-guides/isis-developer-guides/developing-isis3-with-cmake.md
      - ISIS Development on the Mac M1 ARM System:    how-to-guides/isis-developer-guides/developing-mac-m1-arm-systems.md
      - ISIS Programming Exercises:
        - Exercise 1:                                 how-to-guides/isis-developer-guides/exercise-1.md
        - Exercise 2:                                 how-to-guides/isis-developer-guides/exercise-2.md

    - ALE Developer Guides:
      - Creating Ale Drivers: how-to-guides/ale-developer-guides/creating-ale-drivers.md

  - Concepts: 
    - Home:     concepts/index.md
    - Glossary: concepts/glossary.md
    - ALE:
      - Ale Driver Architecture:             concepts/ale/ale-driver-architecture.md
    - Camera Geometry and Projections:
      - Camera Geometry:                     concepts/camera-geometry-and-projections/camera-geometry.md
      - Learning About Map Projections:      concepts/camera-geometry-and-projections/learning-about-map-projections.md
    - ISIS Fundamentals:
      - ISIS Cube Format:                  concepts/isis-fundamentals/cube-format.md
      - ISIS Label Dictionary:             concepts/isis-fundamentals/label-dictionary.md
      - ISIS Attached Spice Format:        concepts/isis-fundamentals/spice-format.md
      - ISIS Kernel Load Selection:        concepts/isis-fundamentals/kernel-selection.md
      - Bit Types:                         concepts/isis-fundamentals/bit-types.md
      - Special Pixels:                    concepts/isis-fundamentals/special-pixels.md
      - Command Line Usage:                concepts/isis-fundamentals/command-line-usage.md
      - Preference Dictionary:             concepts/isis-fundamentals/preference-dictionary.md
      - Error Dictionary:                  concepts/isis-fundamentals/error-dictionary.md
      - Session Logs:                      concepts/isis-fundamentals/session-logs.md

    - SPICE:
      - SPICE Overview:                            concepts/spice/spice-overview.md
      - SPICE Position Functions and Requirements: concepts/spice/spice-position-functions-and-requirements.md
    - Image Processing:
      - The Power of Spatial Filters:        concepts/image-processing/the-power-of-spatial-filters.md
      - Overview of Noise and Artifacts:     concepts/image-processing/overview-of-noise-and-artifacts.md
      - Overview of Radiometric Calibration: concepts/image-processing/overview-of-radiometric-calibration.md
    - Control Networks:
      - Automatic Registration:         concepts/control-networks/automatic-registration.md
      - Autoseed:                       concepts/control-networks/autoseed.md
      - Image Registration:             concepts/control-networks/image-registration.md
      - Multi-Instrument Registration:  concepts/control-networks/multi-instrument-registration.md
      - ISIS Control Networks:          concepts/control-networks/isis-control-networks.md 
    - Sensor Models:
      - Reference Frames: concepts/sensor-models/reference-frames.md
      - Sensor Models:   concepts/sensor-models/sensor-models.md
      - Sensor Model Software:   concepts/sensor-models/sensor-model-software.md
  - Manuals: manuals/index.md

extra_css:
  - css/neoteroi-mkdocs.css
  - css/extras.css
  - https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/css/common.css
  - https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/css/custom.css


extra_javascript: 
  - https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/js/uswds-init.min.js
  - https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/js/uswds.min.js

plugins:
  - search
  - mknotebooks
  - mermaid2

markdown_extensions:
  - codehilite
  - neoteroi.cards
  - abbr
  - tables
  - attr_list
  - md_in_html
  - admonition
  - pymdownx.details
  - pymdownx.superfences
  - def_list
  - pymdownx.tasklist:
      custom_checkbox: true
      clickable_checkbox: true
  - toc:
      title: On this page
      permalink: true
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.inlinehilite
  - pymdownx.snippets
  - pymdownx.superfences:
      custom_fences:
          - name: mermaid
            class: mermaid
            format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.emoji:
      emoji_index: !!python/name:materialx.emoji.twemoji
      emoji_generator: !!python/name:materialx.emoji.to_svg
  - pymdownx.snippets:
        auto_append:
          - definitions.md
