Skip to content

Commit 553c9da

Browse files
jman41claude
andcommitted
Add MkDocs Material documentation site with full API reference
Set up a complete GitHub Pages documentation site using MkDocs Material with auto-generated API reference from enriched NumPy-style docstrings. This adds ~24 new doc files (landing page, getting started, CLI reference, 14 API stubs, notebooks, citation) and enriches docstrings across ~50 source files covering all public classes, functions, and methods. Includes a GitHub Actions workflow for automatic deployment on push to main. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent eede881 commit 553c9da

71 files changed

Lines changed: 3009 additions & 190 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/docs.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Deploy Docs
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: "pages"
15+
cancel-in-progress: false
16+
17+
jobs:
18+
deploy:
19+
environment:
20+
name: github-pages
21+
url: ${{ steps.deployment.outputs.page_url }}
22+
runs-on: ubuntu-latest
23+
steps:
24+
- uses: actions/checkout@v4
25+
26+
- uses: actions/setup-python@v5
27+
with:
28+
python-version: "3.12"
29+
30+
- name: Install dependencies
31+
run: pip install -e ".[docs]"
32+
33+
- name: Build docs
34+
run: mkdocs build --strict
35+
36+
- uses: actions/configure-pages@v5
37+
38+
- uses: actions/upload-pages-artifact@v3
39+
with:
40+
path: site/
41+
42+
- name: Deploy to GitHub Pages
43+
id: deployment
44+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,8 @@ artifacts/
3737
# Secrets
3838
.env
3939

40+
# MkDocs build output
41+
site/
42+
4043
# Large reference docs
4144
background_information.md

docs/api/antenna.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Antenna
2+
3+
Antenna gain models implementing the [`AntennaModel`][opensatcom.core.protocols.AntennaModel] protocol.
4+
5+
## Parametric Antenna
6+
7+
::: opensatcom.antenna.parametric.ParametricAntenna
8+
9+
## Cosine Rolloff Antenna
10+
11+
::: opensatcom.antenna.cosine.CosineRolloffAntenna
12+
13+
## PAM Array Antenna
14+
15+
::: opensatcom.antenna.pam.PamArrayAntenna
16+
17+
## Coupling-Aware Antenna
18+
19+
::: opensatcom.antenna.coupling.CouplingAwareAntenna
20+
21+
## EdgeFEM Loader
22+
23+
::: opensatcom.antenna.edgefem_loader
24+
options:
25+
members:
26+
- CouplingData
27+
- load_npz_artifact
28+
- load_touchstone_coupling

docs/api/core/models.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Models
2+
3+
Core datamodels used throughout OpenSatCom — terminals, scenarios, link inputs/outputs, and RF chain parameters.
4+
5+
::: opensatcom.core.models
6+
options:
7+
members:
8+
- Terminal
9+
- Scenario
10+
- PropagationConditions
11+
- ModCod
12+
- StateECEF
13+
- OpsPolicy
14+
- LinkInputs
15+
- LinkOutputs
16+
- RFChainModel
17+
- WorldSimInputs
18+
- WorldSimOutputs

docs/api/core/protocols.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Protocols
2+
3+
Protocol-based interfaces defining the public API contracts for OpenSatCom. All pluggable components implement these protocols.
4+
5+
::: opensatcom.core.protocols
6+
options:
7+
members:
8+
- AntennaModel
9+
- PropagationModel
10+
- PerformanceCurve
11+
- ACMPolicy
12+
- LinkEngine
13+
- TrajectoryProvider
14+
- EnvironmentProvider

docs/api/core/units.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Units & Constants
2+
3+
Unit conversion utilities and physical constants used throughout OpenSatCom.
4+
5+
## Unit Conversions
6+
7+
::: opensatcom.core.units
8+
9+
## Physical Constants
10+
11+
::: opensatcom.core.constants

docs/api/geometry.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Geometry
2+
3+
Geometric calculations for satellite-terminal links — slant range and elevation angle.
4+
5+
::: opensatcom.geometry.slant
6+
options:
7+
members:
8+
- slant_range_m
9+
- elevation_deg

docs/api/io.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# I/O & Config
2+
3+
YAML configuration loading, validation, and run artifact management.
4+
5+
## Config Loader
6+
7+
::: opensatcom.io.config_loader
8+
options:
9+
members:
10+
- load_config
11+
- ProjectConfig
12+
- ProjectSection
13+
- ScenarioSection
14+
- TerminalSection
15+
- TerminalsSection
16+
- AntennaSection
17+
- AntennaEndConfig
18+
- ParametricAntennaConfig
19+
- PamAntennaConfig
20+
- CouplingConfig
21+
- RFChainSection
22+
- RFStageConfig
23+
- PropagationSection
24+
- PropagationComponentConfig
25+
- ModemSection
26+
- WorldSection
27+
- WorldOpsPolicy
28+
- ReportsSection
29+
- PayloadSection
30+
- BeamConfig
31+
- CosineAntennaConfig
32+
33+
## Run Context
34+
35+
::: opensatcom.io.workspace.RunContext

docs/api/link.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Link Engine
2+
3+
Snapshot link budget evaluation — the central API that computes EIRP, G/T, C/N0, Eb/N0, and margin.
4+
5+
::: opensatcom.link.engine.DefaultLinkEngine

docs/api/modem.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Modem
2+
3+
DVB-S2 modem models — ModCod tables, performance curves, ACM policies, and throughput computation.
4+
5+
## Modem Model
6+
7+
::: opensatcom.modem.modem.ModemModel
8+
9+
## DVB-S2 Built-in Tables
10+
11+
::: opensatcom.modem.dvbs2
12+
options:
13+
members:
14+
- get_dvbs2_modcod_table
15+
- get_dvbs2_performance_curves
16+
17+
## Performance Curves
18+
19+
::: opensatcom.modem.curves.TablePerformanceCurve
20+
21+
::: opensatcom.modem.analytic_curves.AnalyticBERCurve
22+
23+
## ACM Policy
24+
25+
::: opensatcom.modem.acm.HysteresisACMPolicy

0 commit comments

Comments
 (0)