site_name: 'satware® AI'
site_url: https://satware.ai/
site_author: satware AG
site_description: >-
  Entdecken Sie die KI-gestützten Lösungen von satware®. Innovative
  Automatisierung und maßgeschneiderte IT-Lösungen für Ihr Unternehmen.

use_directory_urls: false

copyright: Copyright &copy; 2025 satware AG

theme:
  name: material
  font: false
  custom_dir: overrides/
  language: de

  # Dark Mode als Standard (entsprechend satware CI)
  palette:
    scheme: slate
    primary: custom
    accent: custom

  features:
    - announce.dismiss
    - content.code.annotate
    - content.code.copy
    - content.tabs.link
    - content.tooltips
    - header.autohide
    - navigation.expand
    - navigation.footer
    - navigation.indexes
    - navigation.instant
    - navigation.path
    - navigation.sections
    - navigation.tabs
    - navigation.tabs.sticky
    - navigation.top
    - navigation.tracking
    - search.highlight
    - search.share
    - search.suggest
    - toc.follow

  #font:
  #  text: Roboto
  #  code: Roboto Mono

  favicon: assets/images/favicon.png
  logo: assets/images/logo.svg
  icon:
    logo: logo

plugins:
  - meta
  - exclude:
      glob:
        - "internal/*"
        - "templates/*"
  - blog:
      blog_dir: blog
      blog_toc: true
      post_url_format: "{slug}"
      post_date_format: "dd.MM.yyyy"
      archive_toc: true
      pagination: true
      archive: true
      authors: true
  - search
  - redirects:
      redirect_maps:
          # Critical business page redirects - Fix for 404 errors
          'zugang.md': 'zugang/index.md'           # /zugang -> /zugang/index.html
          'demo.md': 'https://chat.satware.ai/'    # /demo -> external chat URL
          'anwendungen/index.md': 'anwendungsbeispiele/index.md'  # /anwendungen -> /anwendungsbeispiele
          
          # satware AG Benutzerkürzel System - Team Member Redirects
          # Format: kuerzel.md -> team/member.md
          # Unterstützt sowohl Groß- als auch Kleinschreibung

          # A-Team
          'aa.md': 'team/amira.md'         # Amira Alesi
          'aa/index.md': 'team/amira.md'
          'AA.md': 'team/amira.md'         # Uppercase variant
          'AA/index.md': 'team/amira.md'
          'Aa.md': 'team/amira.md'         # Mixed case variant
          'Aa/index.md': 'team/amira.md'

          # B-Team
          'ba.md': 'team/bastian.md'       # Bastian Alesi
          'ba/index.md': 'team/bastian.md'
          'BA.md': 'team/bastian.md'       # Uppercase variant
          'BA/index.md': 'team/bastian.md'
          'Ba.md': 'team/bastian.md'       # Mixed case variant
          'Ba/index.md': 'team/bastian.md'
          'bra.md': 'team/brenda.md'       # Brenda Alesi (collision resolved)
          'bra/index.md': 'team/brenda.md'
          'BRA.md': 'team/brenda.md'       # Uppercase variant
          'BRA/index.md': 'team/brenda.md'
          'Bra.md': 'team/brenda.md'       # Mixed case variant
          'Bra/index.md': 'team/brenda.md'
          'BRa.md': 'team/brenda.md'       # Mixed case variant
          'BRa/index.md': 'team/brenda.md'
          'brA.md': 'team/brenda.md'       # Mixed case variant
          'brA/index.md': 'team/brenda.md'
          'bea.md': 'team/bea.md'          # Bea Alesi (collision resolved)
          'bea/index.md': 'team/bea.md'
          'BEA.md': 'team/bea.md'          # Uppercase variant
          'BEA/index.md': 'team/bea.md'
          'Bea.md': 'team/bea.md'          # Mixed case variant
          'Bea/index.md': 'team/bea.md'
          'BEa.md': 'team/bea.md'          # Mixed case variant
          'BEa/index.md': 'team/bea.md'
          'beA.md': 'team/bea.md'          # Mixed case variant
          'beA/index.md': 'team/bea.md'

          # D-Team
          'da.md': 'team/denopus.md'       # Denopus Alesi
          'da/index.md': 'team/denopus.md'
          'DA.md': 'team/denopus.md'       # Uppercase variant
          'DA/index.md': 'team/denopus.md'
          'Da.md': 'team/denopus.md'       # Mixed case variant
          'Da/index.md': 'team/denopus.md'

          # G-Team
          'ga.md': 'team/gunta.md'         # Gunta Alesi
          'ga/index.md': 'team/gunta.md'
          'GA.md': 'team/gunta.md'         # Uppercase variant
          'GA/index.md': 'team/gunta.md'
          'Ga.md': 'team/gunta.md'         # Mixed case variant
          'Ga/index.md': 'team/gunta.md'

          # J-Team
          'ja.md': 'team/jane.md'          # Jane Alesi
          'ja/index.md': 'team/jane.md'
          'JA.md': 'team/jane.md'          # Uppercase variant
          'JA/index.md': 'team/jane.md'
          'Ja.md': 'team/jane.md'          # Mixed case variant
          'Ja/index.md': 'team/jane.md'
          'jane.md': 'team/jane.md'        # Alternative redirect
          'JANE.md': 'team/jane.md'        # Uppercase alternative
          'Jane.md': 'team/jane.md'        # Mixed case alternative
          'joa.md': 'team/john.md'         # John Alesi (collision resolved)
          'joa/index.md': 'team/john.md'
          'JOA.md': 'team/john.md'         # Uppercase variant
          'JOA/index.md': 'team/john.md'
          'Joa.md': 'team/john.md'         # Mixed case variant
          'Joa/index.md': 'team/john.md'
          'JOa.md': 'team/john.md'         # Mixed case variant
          'JOa/index.md': 'team/john.md'
          'joA.md': 'team/john.md'         # Mixed case variant
          'joA/index.md': 'team/john.md'
          'jua.md': 'team/justus.md'       # Justus Alesi (collision resolved)
          'jua/index.md': 'team/justus.md'
          'JUA.md': 'team/justus.md'       # Uppercase variant
          'JUA/index.md': 'team/justus.md'
          'Jua.md': 'team/justus.md'       # Mixed case variant
          'Jua/index.md': 'team/justus.md'
          'JUa.md': 'team/justus.md'       # Mixed case variant
          'JUa/index.md': 'team/justus.md'
          'juA.md': 'team/justus.md'       # Mixed case variant
          'juA/index.md': 'team/justus.md'

          # L-Team
          'la.md': 'team/lara.md'          # Lara Alesi
          'la/index.md': 'team/lara.md'
          'LA.md': 'team/lara.md'          # Uppercase variant
          'LA/index.md': 'team/lara.md'
          'La.md': 'team/lara.md'          # Mixed case variant
          'La/index.md': 'team/lara.md'
          'lea.md': 'team/lenna.md'        # Lenna Alesi (collision resolved)
          'lea/index.md': 'team/lenna.md'
          'LEA.md': 'team/lenna.md'        # Uppercase variant
          'LEA/index.md': 'team/lenna.md'
          'Lea.md': 'team/lenna.md'        # Mixed case variant
          'Lea/index.md': 'team/lenna.md'
          'LEa.md': 'team/lenna.md'        # Mixed case variant
          'LEa/index.md': 'team/lenna.md'
          'leA.md': 'team/lenna.md'        # Mixed case variant
          'leA/index.md': 'team/lenna.md'
          'leo.md': 'team/leon.md'         # Leon Alesi (collision resolved)
          'leo/index.md': 'team/leon.md'
          'LEO.md': 'team/leon.md'         # Uppercase variant
          'LEO/index.md': 'team/leon.md'
          'Leo.md': 'team/leon.md'         # Mixed case variant
          'Leo/index.md': 'team/leon.md'
          'LEo.md': 'team/leon.md'         # Mixed case variant
          'LEo/index.md': 'team/leon.md'
          'leO.md': 'team/leon.md'         # Mixed case variant
          'leO/index.md': 'team/leon.md'
          'lua.md': 'team/luna.md'         # Luna Alesi (collision resolved)
          'lua/index.md': 'team/luna.md'
          'LUA.md': 'team/luna.md'         # Uppercase variant
          'LUA/index.md': 'team/luna.md'
          'Lua.md': 'team/luna.md'         # Mixed case variant
          'Lua/index.md': 'team/luna.md'
          'LUa.md': 'team/luna.md'         # Mixed case variant
          'LUa/index.md': 'team/luna.md'
          'luA.md': 'team/luna.md'         # Mixed case variant
          'luA/index.md': 'team/luna.md'

          # M-Team
          'ma.md': 'team/marco.md'         # Marco Alesi
          'ma/index.md': 'team/marco.md'
          'MA.md': 'team/marco.md'         # Uppercase variant
          'MA/index.md': 'team/marco.md'
          'Ma.md': 'team/marco.md'         # Mixed case variant
          'Ma/index.md': 'team/marco.md'

          # O-Team
          'oa.md': 'team/olu.md'           # Olu Alesi
          'oa/index.md': 'team/olu.md'
          'OA.md': 'team/olu.md'           # Uppercase variant
          'OA/index.md': 'team/olu.md'
          'Oa.md': 'team/olu.md'           # Mixed case variant
          'Oa/index.md': 'team/olu.md'

          # T-Team
          'ta.md': 'team/theo.md'          # Theo Alesi
          'ta/index.md': 'team/theo.md'
          'TA.md': 'team/theo.md'          # Uppercase variant
          'TA/index.md': 'team/theo.md'
          'Ta.md': 'team/theo.md'          # Mixed case variant
          'Ta/index.md': 'team/theo.md'

          # W-Team
          'wa.md': 'team/wolfgang.md'      # Wolfgang Alesi
          'wa/index.md': 'team/wolfgang.md'
          'WA.md': 'team/wolfgang.md'      # Uppercase variant
          'WA/index.md': 'team/wolfgang.md'
          'Wa.md': 'team/wolfgang.md'      # Mixed case variant
          'Wa/index.md': 'team/wolfgang.md'

  - minify:
      minify_js: true
      minify_html: true
      minify_css: true
      htmlmin_opts:
        remove_comments: true
  - git-revision-date-localized:
      enable_creation_date: true
      fallback_to_build_date: true
  - social:
      cards_layout_options:
        background_color: "#000000"
  - rss:
      feed_title: satware® AI Blog
      feed_description: Aktuelle Nachrichten, technische Einblicke und Innovationen von satware® AI.
      match_path: blog/posts/.*
      abstract_chars_count: 250
      date_from_meta:
        as_creation: date
      categories:
        - categories
        - tags
      pretty_print: false
      use_git: true

# Erweiterungen
markdown_extensions:
  - abbr
  - admonition
  - attr_list
  - def_list
  - footnotes
  - md_in_html
  - toc:
      permalink: true
  - pymdownx.arithmatex:
      generic: true
  - pymdownx.betterem:
      smart_enable: all
  - pymdownx.caret
  - pymdownx.details
  - pymdownx.emoji:
      emoji_generator: !!python/name:material.extensions.emoji.to_svg
      emoji_index: !!python/name:material.extensions.emoji.twemoji
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.inlinehilite
  - pymdownx.keys
  - pymdownx.magiclink:
      repo_url_shorthand: true
      user: satware
      repo: satwareai-mkdocs
  - pymdownx.mark
  - pymdownx.smartsymbols
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.tabbed:
      alternate_style: true
  - pymdownx.tasklist:
      custom_checkbox: true
  - pymdownx.tilde

# Zusätzliche Konfiguration
extra:
  social:
    - icon: fontawesome/brands/square-facebook
      link: https://www.facebook.com/satwareAG/
      name: satware AG auf Facebook
    - icon: fontawesome/brands/instagram
      link: https://www.instagram.com/satware.ag/
      name: satware AG auf Instagram
    - icon: fontawesome/brands/linkedin
      link: https://www.linkedin.com/company/satware-ag/?originalSubdomain=de
      name: satware AG auf LinkedIn
    - icon: fontawesome/brands/x-twitter
      link: https://x.com/satwareAG
      name: satware AG auf X
    - icon: fontawesome/brands/xing
      link: https://www.xing.com/pages/satwareag
      name: satware AG auf Xing
    - icon: fontawesome/brands/youtube
      link: https://www.youtube.com/@satwareAG
      name: satware AG auf YouTube

  #cards:
  #  font:
  #    text: Assistant
  #    code: Assistant
  #  cards_layout_options:
  #    background_color: "#000"

  generator: false

# CSS-Anpassungen
extra_css:
  - assets/css/custom.css
extra_javascript:
  - assets/js/body-classes.js
  - assets/js/consent.js
  - assets/js/counter-animation.js
  - assets/js/faq.js
  - assets/js/testimonials.js
  - assets/js/wcag.js
  - assets/js/lightbox.js
  - assets/js/slideshow.js

# Navigation
nav:
  - KI-Agenten:
      - Übersicht: team/index.md
      - Amira Alesi: team/amira.md
      - Bastian Alesi: team/bastian.md
      - Bea Alesi: team/bea.md
      - Brenda Alesi: team/brenda.md
      - Denopus Alesi: team/denopus.md
      - Eddi Alesi: team/eddi.md
      - Fenix Alesi: team/fenix.md
      - Gunta Alesi: team/gunta.md
      - Jane Alesi: team/jane.md
      - John Alesi: team/john.md
      - Justus Alesi: team/justus.md
      - Lara Alesi: team/lara.md
      - Lenna Alesi: team/lenna.md
      - Leon Alesi: team/leon.md
      - Luna Alesi: team/luna.md
      - Marco Alesi: team/marco.md
      - Olu Alesi: team/olu.md
      - Theo Alesi: team/theo.md
      - Tim Alesi: team/tim.md
      - Wolfgang Alesi: team/wolfgang.md
      - Zuri Alesi: team/zuri.md
  - Anwendungsbeispiele: anwendungsbeispiele/index.md
  - Webinare:
      - webinare/index.md
      - Termine: webinare/termine/index.md
      - Anmeldung: webinare/anmeldung/index.md
      - Aufzeichnungen: webinare/aufzeichnungen/index.md
  - Workshops: workshops/index.md
  - Bestellen: zugang/index.md
  - FAQ: faq/index.md
  - Blog: blog/index.md
