First Principles
The navigation system is built on two types of principles:
These define what the navigation system does and why:
- Two-Phase Loading - Separate configuration resolution from navigation construction
- Single Documentation Source - All paths relative to docset root
- URL Building is Dynamic - URLs calculated on-demand, not stored
- Navigation Roots Can Be Re-homed - O(1) URL prefix changes
- Navigation Scope via HomeProvider - Scoped URL calculation contexts
- Index Files Determine URLs - Folders and indexes share URLs
- File Structure Mirrors Navigation - Predictable, maintainable structure
- Acyclic Graph Structure - Tree with no cycles, unique URLs
- Phantom Nodes - Acknowledge content without including it
These define how the navigation system is implemented:
- Generic Type System - Covariance enables static typing without runtime casts
- Provider Pattern - Decouples URL calculation from tree structure
- Lazy URL Calculation - Smart caching with automatic invalidation
For understanding architecture: Start with Functional Principles
For implementation details: See Technical Principles
For visual examples: See Visual Walkthrough
For specific topics:
- How assembly works: Assembler Process
- How re-homing works: Home Provider Architecture
- Two-phase approach: Two-Phase Loading
- Node reference: Node Types