Appearance
Dynamic Documentation System
Overview
This system automatically generates API documentation for the four context variables (market, portfolio, memory, session) by extracting information directly from the Python source code.
How It Works
1. Python Introspection Tool (tools/extract-python-api.py)
- Uses Python's
inspectmodule to analyze classes - Extracts properties, methods, docstrings, type hints
- Generates structured JSON with comprehensive API information
- Runs automatically during documentation builds
2. VitePress Data Loader (.vitepress/data/pythonApi.data.js)
- Loads the generated JSON at build time
- Transforms data for easier consumption by Vue components
- Makes API data available to all documentation pages
3. Vue Components
ApiReference.vue: Full API documentation with properties, methods, and examplesApiSummary.vue: Compact API overview with quick references
4. Integration
- Updated
strategy-development/syntax-reference.mdto use new dynamic components - Automatic API extraction in npm build scripts
- Updated variable names to use new naming (
market,portfolio,memory,session)
Usage
In Documentation Pages
markdown
<!-- Full API reference -->
<ApiReference context="market" />
<!-- Quick summary -->
<ApiSummary context="portfolio" />Build Process
bash
# Extract API documentation and build
npm run docs:build
# Development with live updates
npm run docs:devGenerated Documentation Includes
For each context variable:
- Class Information: Name, module, description
- Properties: Type, description, readonly status, examples
- Methods: Signature, parameters, return types, examples
- Usage Examples: Common patterns and code snippets
- Generation Metadata: Timestamp, version info
Benefits
- Always Accurate: Documentation reflects actual code structure
- Zero Maintenance: Updates automatically when Python code changes
- Comprehensive: Captures all public members, not just manually documented ones
- Consistent: Uniform formatting across all API documentation
- Live Updates: Changes in Python code immediately appear in docs
Files Created/Modified
New Files
docs/tools/extract-python-api.py- Python introspection tooldocs/.vitepress/data/pythonApi.data.js- VitePress data loaderdocs/.vitepress/components/ApiReference.vue- Full API componentdocs/.vitepress/components/ApiSummary.vue- Summary API componentdocs/.vitepress/theme/index.js- Theme configurationdocs/.vitepress/theme/custom.css- Custom stylesdocs/.vitepress/data/python-api.json- Generated API data
Modified Files
docs/package.json- Added API extraction to build scriptsdocs/strategy-development/syntax-reference.md- Updated with dynamic componentsdocs/.vitepress/config.mjs- VitePress configuration
Technical Details
The system works by:
- Running
python tools/extract-python-api.pybefore each build - Generating
python-api.jsonwith complete API information - VitePress data loader makes this available as
pythonApiData - Vue components render the documentation dynamically
- Documentation stays in sync with code changes
Future Enhancements
- Add search functionality across API members
- Generate type definitions for TypeScript users
- Add interactive code examples
- Include performance metrics for methods
- Add changelog tracking for API changes