* feat: Add mkdocs-redirects plugin configuration for /ja → /team/jane.html redirect - Add redirects plugin to plugins section - Configure redirect mapping for /ja to /team/jane.html - Support multiple URL patterns and fallback redirects - Fixes issue #99 * feat: Add fallback redirect page for /ja → /team/jane.html - Create fallback redirect page with multiple redirect methods - Include meta refresh, JavaScript redirect, and manual link - Provides redundancy for redirect functionality - SEO-friendly with proper meta tags * feat: Add comprehensive redirect system for all team member Benutzerkürzel - Implement satware AG Benutzerkürzel system for all team members - Add redirects for all agents following collision resolution rules - Support both direct and index patterns for each abbreviation - Complete redirect mapping: * AA → Amira, BA → Bastian, BEA → Bea (collision resolved) * DA → Denopus, GA → Gunta, JA → Jane * JOA → John, JUA → Justus (collision resolved) * LA → Lara, LEA → Lenna, LEO → Leon, LUA → Luna * MA → Marco, OA → Olu, TA → Theo, WA → Wolfgang Fixes issue #99 * docs: Add comprehensive documentation for satware AG Benutzerkürzel redirect system - Document complete redirect system implementation - Include collision resolution rules and examples - List all team member abbreviations and target URLs - Provide testing instructions and troubleshooting guide --------- Co-authored-by: Michael Wegener <mw@satware.com>
5.8 KiB
satware AG Benutzerkürzel Redirect System
Overview
This document describes the implementation of the satware AG Benutzerkürzel (user abbreviation) system for the satware.ai website. The system provides short URL redirects for all team members following company-wide naming conventions.
Implementation Details
Core Rules
- Minimum Length: At least 2 characters, ideally 2 characters
- Formation: Vorname + Nachname (First name + Last name)
- Collision-Free: Each abbreviation must be unique company-wide
- Case: Uppercase (Versalien) in normal use, lowercase in wiki/web context
- Maximum Length: 3 characters maximum (Amicron compatibility)
Collision Resolution
When abbreviations collide, the following resolution order is applied:
- Standard: First letter of first name + first letter of last name
- Second letter of last name: VN → VNA
- Second letter of first name: VN → VON
- Middle name inclusion: First name + Middle name + Last name → VMN
Current Team Member Abbreviations
| Kürzel | Name | Target URL | Notes |
|---|---|---|---|
| AA | Amira Alesi | /team/amira.html |
Standard |
| BA | Bastian Alesi | /team/bastian.html |
Standard |
| BEA | Bea Alesi | /team/bea.html |
Collision resolved (BA taken) |
| DA | Denopus Alesi | /team/denopus.html |
Standard |
| GA | Gunta Alesi | /team/gunta.html |
Standard |
| JA | Jane Alesi | /team/jane.html |
Standard |
| JOA | John Alesi | /team/john.html |
Collision resolved (JA taken) |
| JUA | Justus Alesi | /team/justus.html |
Collision resolved (JA/JOA taken) |
| LA | Lara Alesi | /team/lara.html |
Standard |
| LEA | Lenna Alesi | /team/lenna.html |
Collision resolved (LA taken) |
| LEO | Leon Alesi | /team/leon.html |
Collision resolved (LA/LEA taken) |
| LUA | Luna Alesi | /team/luna.html |
Collision resolved (LA/LEA/LEO taken) |
| MA | Marco Alesi | /team/marco.html |
Standard |
| OA | Olu Alesi | /team/olu.html |
Standard |
| TA | Theo Alesi | /team/theo.html |
Standard |
| WA | Wolfgang Alesi | /team/wolfgang.html |
Standard |
Technical Implementation
MkDocs Redirects Plugin
The redirects are implemented using the mkdocs-redirects plugin in mkdocs.yml:
plugins:
- redirects:
redirect_maps:
# Examples
'ja.md': 'team/jane.md'
'ja/index.md': 'team/jane.md'
'joa.md': 'team/john.md'
'joa/index.md': 'team/john.md'
# ... (see mkdocs.yml for complete list)
URL Patterns Supported
For each team member, the following URL patterns are supported:
- Direct:
https://satware.ai/{kürzel}→https://satware.ai/team/{name}.html - Index:
https://satware.ai/{kürzel}/→https://satware.ai/team/{name}.html - Explicit:
https://satware.ai/{kürzel}/index.html→https://satware.ai/team/{name}.html
Examples
https://satware.ai/ja→https://satware.ai/team/jane.htmlhttps://satware.ai/joa→https://satware.ai/team/john.htmlhttps://satware.ai/bea→https://satware.ai/team/bea.html
Fallback System
In addition to the mkdocs-redirects plugin, a fallback redirect page is created at docs/ja.md with:
- Meta refresh:
<meta http-equiv="refresh" content="0; url=/team/jane.html"> - JavaScript redirect:
window.location.href = '/team/jane.html'; - Manual link: User-clickable link as final fallback
Testing the Redirects
Local Development
-
Start the development server:
./mkdocs.sh -
Test redirect URLs:
curl -I http://localhost:8000/ja curl -I http://localhost:8000/joa curl -I http://localhost:8000/bea -
Verify redirect status codes (302 or 301) and target locations
Production Testing
After deployment, test the live redirects:
curl -I https://satware.ai/ja
curl -I https://satware.ai/joa
curl -I https://satware.ai/bea
Adding New Team Members
When adding new team members:
- Determine Kürzel: Follow collision resolution rules
- Update mkdocs.yml: Add redirect mappings
- Document: Update this file with new abbreviation
- Test: Verify redirects work in development and production
New Member Example
For a new member "Max Weber":
- Initial: MW
- Check collisions: If MW exists, use MWE or MAW
- Add to mkdocs.yml:
'mw.md': 'team/max-weber.md' 'mw/index.md': 'team/max-weber.md'
Troubleshooting
Common Issues
- 404 Errors: Verify target team page exists
- Redirect Loops: Check for circular redirects in configuration
- Cache Issues: Clear browser cache or test in private/incognito mode
- Case Sensitivity: Ensure lowercase in redirect mappings
Debug Steps
- Check Plugin Installation: Verify
mkdocs-redirectsin Docker image - Validate YAML: Ensure proper YAML syntax in mkdocs.yml
- Build Locally: Run
mkdocs buildto check for errors - Check Generated Files: Verify redirect HTML files in
site/directory
Security Considerations
- All redirect targets are internal to the satware.ai domain
- No external redirect capabilities to prevent abuse
- Redirect mappings are explicitly defined (no dynamic generation)
Performance Impact
- Minimal impact on build time
- Redirect files are small HTML documents
- SEO-friendly with proper HTTP status codes
- Compatible with CDN caching
future Enhancements
- API Integration: Automatic abbreviation generation from HR systems
- Alternative Mappings: Support multiple abbreviation formats
- Analytics: Track redirect usage for optimization
- Dynamic Updates: Automated updates when team changes occur
Last Updated: 2025-06-02
Version: 1.0
Author: Jane Alesi (JA)
Status: Production Ready