Skip to content

Commit f224bf3

Browse files
committed
fix rendering pages, fix syntax
1 parent 10fba37 commit f224bf3

12 files changed

Lines changed: 65 additions & 46 deletions

File tree

components/PrevNextNav.tsx

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,19 @@ const allPages: DocLink[] = [
2323
{ title: "Common Mistakes", href: "/getting-started/common-mistakes" },
2424
{ title: "Troubleshooting", href: "/troubleshooting" },
2525
{ title: "Runtime Errors", href: "/troubleshooting-runtime" },
26+
{ title: "Advanced Examples", href: "/advanced-examples" },
2627

2728
// Core Concepts
28-
{ title: "Concepts Overview", href: "/concepts" },
29+
{ title: "Overview", href: "/concepts" },
30+
{ title: "Core Architecture", href: "/concepts/core" },
2931
{ title: "Nodes", href: "/concepts/core-concepts-nodes" },
3032
{ title: "Communication Patterns", href: "/concepts/communication-overview" },
3133
{ title: "Topic (Pub/Sub)", href: "/concepts/core-concepts-topic" },
3234
{ title: "PodTopic (Ultra-Fast)", href: "/concepts/core-concepts-podtopic" },
3335
{ title: "Communication Transport", href: "/concepts/communication-transport" },
3436
{ title: "Local (Shared Memory)", href: "/concepts/core-concepts-shared-memory" },
35-
{ title: "Network Communication", href: "/concepts/network-communication" },
36-
{ title: "Communication Configuration", href: "/concepts/communication-configuration" },
37+
{ title: "Network", href: "/concepts/network-communication" },
38+
{ title: "Configuration", href: "/concepts/communication-configuration" },
3739
{ title: "Scheduler", href: "/concepts/core-concepts-scheduler" },
3840
{ title: "node! Macro", href: "/concepts/node-macro" },
3941
{ title: "message! Macro", href: "/concepts/message-macro" },
@@ -43,31 +45,42 @@ const allPages: DocLink[] = [
4345
{ title: "HFrame Transforms", href: "/concepts/hframe" },
4446
{ title: "Robot Architectures", href: "/concepts/robot-architectures" },
4547
{ title: "Multi-Language", href: "/concepts/multi-language" },
48+
{ title: "Orchestration", href: "/concepts/orchestration" },
49+
{ title: "State Machines", href: "/concepts/state-machines" },
50+
{ title: "Mission Planner", href: "/concepts/mission-planner" },
4651

4752
// Rust
4853
{ title: "Rust Overview", href: "/rust" },
4954
{ title: "API Reference", href: "/rust/api" },
5055
{ title: "horus_core", href: "/rust/api/core" },
5156
{ title: "horus_macros", href: "/rust/api/macros" },
5257
{ title: "TensorPool", href: "/rust/api/tensor-pool" },
58+
{ title: "Tensor Messages", href: "/rust/api/tensor-messages" },
59+
{ title: "Hardware Discovery", href: "/rust/api/hardware" },
5360
{ title: "Messages Overview", href: "/rust/api/messages" },
5461
{ title: "Control Messages", href: "/rust/api/control-messages" },
5562
{ title: "Coordination Messages", href: "/rust/api/coordination-messages" },
5663
{ title: "Diagnostics Messages", href: "/rust/api/diagnostics-messages" },
5764
{ title: "Force Messages", href: "/rust/api/force-messages" },
65+
{ title: "Geometry Messages", href: "/rust/api/geometry-messages" },
5866
{ title: "I/O Messages", href: "/rust/api/io-messages" },
5967
{ title: "ML Messages", href: "/rust/api/ml-messages" },
6068
{ title: "Navigation Messages", href: "/rust/api/navigation-messages" },
6169
{ title: "Perception Messages", href: "/rust/api/perception-messages" },
70+
{ title: "Sensor Messages", href: "/rust/api/sensor-messages" },
71+
{ title: "Timing Messages", href: "/rust/api/timing-messages" },
6272
{ title: "Vision Messages", href: "/rust/api/vision-messages" },
6373
{ title: "Rust Examples", href: "/rust/examples" },
6474
{ title: "Basic Examples", href: "/rust/examples/basic-examples" },
6575
{ title: "Advanced Examples", href: "/rust/examples/advanced-examples" },
6676

6777
// Python
6878
{ title: "Python Overview", href: "/python" },
79+
{ title: "Python API", href: "/python/api" },
6980
{ title: "Python Bindings", href: "/python/api/python-bindings" },
7081
{ title: "Async Nodes", href: "/python/api/async-nodes" },
82+
{ title: "Custom Messages", href: "/python/api/custom-messages" },
83+
{ title: "Python Library", href: "/python/library" },
7184
{ title: "Message Library", href: "/python/library/python-message-library" },
7285
{ title: "Hardware Nodes", href: "/python/library/python-hardware-nodes" },
7386
{ title: "ML Utilities", href: "/python/library/ml-utilities" },
@@ -83,6 +96,8 @@ const allPages: DocLink[] = [
8396
{ title: "Library Reference", href: "/development/library-reference" },
8497
{ title: "Error Handling", href: "/development/error-handling" },
8598
{ title: "AI Integration", href: "/development/ai-integration" },
99+
{ title: "ROS2 Bridge", href: "/development/ros2-bridge" },
100+
{ title: "Hardware Discovery", href: "/development/hardware-discovery" },
86101

87102
// Advanced Topics
88103
{ title: "Scheduler Configuration", href: "/advanced/scheduler-configuration" },
@@ -97,6 +112,10 @@ const allPages: DocLink[] = [
97112
{ title: "Safety Monitor", href: "/advanced/safety-monitor" },
98113
{ title: "Checkpoint System", href: "/advanced/checkpoint" },
99114
{ title: "Model Registry", href: "/advanced/model-registry" },
115+
{ title: "Record & Replay", href: "/advanced/record-replay" },
116+
{ title: "Redundancy", href: "/advanced/redundancy" },
117+
{ title: "Telemetry", href: "/advanced/telemetry" },
118+
{ title: "Real-Time Configuration", href: "/advanced/rt-config" },
100119

101120
// Package Management
102121
{ title: "Package Management", href: "/package-management/package-management" },

content/docs/advanced/record-replay.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ let config = RecordingConfig::with_name("lidar_calibration");
5454
| `max_size` | `usize` | 100MB | Maximum size per node |
5555
| `compress` | `bool` | `true` | Enable gzip compression |
5656
| `interval` | `u64` | 1 | Record every N ticks |
57-
| `include_nodes` | `Vec<String>` | Empty (all) | Nodes to include |
58-
| `exclude_nodes` | `Vec<String>` | Empty | Nodes to exclude |
57+
| `include_nodes` | `Vec\<String\>` | Empty (all) | Nodes to include |
58+
| `exclude_nodes` | `Vec\<String\>` | Empty | Nodes to exclude |
5959

6060
## Recording Nodes
6161

@@ -114,9 +114,9 @@ let snapshot = NodeTickSnapshot::new(tick)
114114
|-------|------|-------------|
115115
| `tick` | `u64` | Tick number |
116116
| `timestamp_us` | `u64` | Microseconds since epoch |
117-
| `inputs` | `HashMap<String, Vec<u8>>` | Input data by topic |
118-
| `outputs` | `HashMap<String, Vec<u8>>` | Output data by topic |
119-
| `state` | `Option<Vec<u8>>` | Internal state snapshot |
117+
| `inputs` | `HashMap\<String, Vec\<u8\>\>` | Input data by topic |
118+
| `outputs` | `HashMap\<String, Vec\<u8\>\>` | Output data by topic |
119+
| `state` | `Option\<Vec\<u8\>\>` | Internal state snapshot |
120120
| `duration_ns` | `u64` | Execution duration |
121121

122122
## Replaying Recordings

content/docs/advanced/redundancy.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ for (id, path) in checkpoint_mgr.list_checkpoints() {
130130
|-------|------|-------------|
131131
| `id` | `u64` | Unique checkpoint identifier |
132132
| `timestamp` | `u64` | Unix timestamp (seconds) |
133-
| `node_states` | `HashMap<String, NodeCheckpoint>` | Per-node state data |
133+
| `node_states` | `HashMap\<String, NodeCheckpoint\>` | Per-node state data |
134134
| `metadata` | `CheckpointMetadata` | Scheduler metadata |
135135

136136
**NodeCheckpoint:**
@@ -141,7 +141,7 @@ for (id, path) in checkpoint_mgr.list_checkpoints() {
141141
| `tick_count` | `u64` | Total ticks executed |
142142
| `last_tick_us` | `u64` | Last tick duration (microseconds) |
143143
| `error_count` | `u64` | Error count |
144-
| `custom_state` | `Option<Vec<u8>>` | Serialized custom state |
144+
| `custom_state` | `Option\<Vec\<u8\>\>` | Serialized custom state |
145145

146146
**CheckpointMetadata:**
147147

content/docs/advanced/telemetry.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ let config = SchedulerConfig {
465465
| `profiling_enabled` | `bool` | `true` | Enable runtime profiling |
466466
| `tracing_enabled` | `bool` | `false` | Enable distributed tracing |
467467
| `metrics_interval_ms` | `u64` | `1000` | Export interval |
468-
| `telemetry_endpoint` | `Option<String>` | `None` | Telemetry endpoint URL |
468+
| `telemetry_endpoint` | `Option\<String\>` | `None` | Telemetry endpoint URL |
469469
| `black_box_enabled` | `bool` | `false` | Enable blackbox recording |
470470
| `black_box_size_mb` | `usize` | `0` | Blackbox buffer size |
471471

content/docs/concepts/core-concepts-shared-memory.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ let capacity = 1000;
545545
let message_size = size_of::<LaserScan>(); // ~1536 bytes
546546
let total_memory = capacity * message_size; // ~1.5 MB
547547

548-
Topic::LaserScan>::new_with_capacity("scan", capacity)?;
548+
Topic::<LaserScan>::new_with_capacity("scan", capacity)?;
549549
```
550550

551551
#### From MB to Message Capacity
@@ -558,7 +558,7 @@ let message_size = size_of::<PointCloud>(); // ~120 KB
558558

559559
let capacity = target_bytes / message_size; // ~426 messages
560560

561-
Topic::PointCloud>::new_with_capacity("points", capacity)?;
561+
Topic::<PointCloud>::new_with_capacity("points", capacity)?;
562562
```
563563

564564
### Memory Size Examples
@@ -593,13 +593,13 @@ Best for most use cases:
593593

594594
```rust
595595
// Small messages, high frequency
596-
Topic::CmdVel>::new_with_capacity("cmd_vel", 1000)?; // 16 KB
596+
Topic::<CmdVel>::new_with_capacity("cmd_vel", 1000)?; // 16 KB
597597

598598
// Medium messages, moderate frequency
599-
Topic::Imu>::new_with_capacity("imu", 500)?; // 152 KB
599+
Topic::<Imu>::new_with_capacity("imu", 500)?; // 152 KB
600600

601601
// Large messages, lower frequency
602-
Topic::LaserScan>::new_with_capacity("scan", 100)?; // 150 KB
602+
Topic::<LaserScan>::new_with_capacity("scan", 100)?; // 150 KB
603603
```
604604

605605
#### By Memory Budget
@@ -613,7 +613,7 @@ let budget_bytes = budget_mb * 1024 * 1024;
613613
let msg_size = size_of::<PointCloud>(); // 120 KB
614614

615615
let capacity = budget_bytes / msg_size; // ~85 messages
616-
Topic::PointCloud>::new_with_capacity("points", capacity)?;
616+
Topic::<PointCloud>::new_with_capacity("points", capacity)?;
617617
```
618618

619619
#### Rule of Thumb Calculations

content/docs/concepts/core-concepts-topic.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ let topic: Topic<SensorData> = Topic::new("sensors@192.168.1.5")?;
145145
let topic: Topic<SensorData> = Topic::new("sensors@192.168.1.5:8000")?; // Custom port
146146
```
147147

148-
**Performance**: <50µs latency
148+
**Performance**: \<50µs latency
149149
**Use case**: Nodes distributed across multiple machines
150150
**Pros**: Multi-machine, fault isolation, scalable
151151

content/docs/development/parameters.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ HORUS supports all JSON-compatible types:
7171
- **Numbers** - `f64`, `i64`, `u64` (stored as `Value::Number`)
7272
- **Strings** - `String` (stored as `Value::String`)
7373
- **Booleans** - `bool` (stored as `Value::Bool`)
74-
- **Arrays** - `Vec<T>` (stored as `Value::Array`)
75-
- **Objects** - `HashMap<String, T>` (stored as `Value::Object`)
74+
- **Arrays** - `Vec\<T\>` (stored as `Value::Array`)
75+
- **Objects** - `HashMap\<String, T\>` (stored as `Value::Object`)
7676

7777
### Hierarchical Keys
7878

@@ -193,7 +193,7 @@ node! {
193193
}
194194
```
195195

196-
**Performance note:** Parameter access is fast (~80-350ns via `Arc<RwLock>`), but avoid reading hundreds of parameters every tick. Cache values and reload periodically.
196+
**Performance note:** Parameter access is fast (~80-350ns via `Arc\<RwLock\>`), but avoid reading hundreds of parameters every tick. Cache values and reload periodically.
197197

198198
### Complex Parameter Types
199199

@@ -729,7 +729,7 @@ cp ~/.horus/config/params_backup.yaml ~/.horus/config/params.yaml
729729

730730
### Access Speed
731731

732-
Parameters use `Arc<RwLock<BTreeMap>>`:
732+
Parameters use `Arc\<RwLock\<BTreeMap\>\>`:
733733

734734
- **Read**: ~80-350ns (read lock + BTreeMap lookup)
735735
- **Write**: ~100-500ns (write lock + BTreeMap insert + potential save)

content/docs/package-management/package-management.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,10 @@ my_project/
162162
**Naming conventions by source:**
163163
| Source | Directory Format | Example |
164164
|--------|------------------|---------|
165-
| HORUS Registry | `<name>@<version>/` | `pid-controller@1.0.0/` |
166-
| crates.io | `<name>@<version>/` | `serde@1.0.200/` |
167-
| PyPI | `pypi_<name>@<version>/` | `pypi_numpy@1.24.0/` |
168-
| Git | `git_<hash>/` | `git_abc123def/` |
165+
| HORUS Registry | `\<name\>@\<version\>/` | `pid-controller@1.0.0/` |
166+
| crates.io | `\<name\>@\<version\>/` | `serde@1.0.200/` |
167+
| PyPI | `pypi_\<name\>@\<version\>/` | `pypi_numpy@1.24.0/` |
168+
| Git | `git_\<hash\>/` | `git_abc123def/` |
169169

170170
**Why use global:**
171171
- Share common packages across all projects

content/docs/python/library/python-hardware-nodes.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,7 @@ imu = ImuNode() # Falls back to simulation if I2C fails
602602
| CameraNode | Black frame with "SIMULATION" text |
603603
| LidarNode | Circular room pattern |
604604

605-
See [Node Simulation Mode](/development/simulation#node-simulation-mode) for details.
605+
See [Simulation Mode](/getting-started/installation#simulation-mode) for details.
606606

607607
---
608608

content/docs/rust/api/core.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ Creates a new Topic with default capacity (1024 messages).
210210
**Parameters:**
211211
- `topic_name` - Unique identifier for the topic
212212

213-
**Returns:** `Result<Topic<T>>`
213+
**Returns:** `Result\<Topic\<T\>\>`
214214

215215
**Example:**
216216
```rust
@@ -231,7 +231,7 @@ Creates a Topic with custom buffer capacity.
231231
- `topic_name` - Unique identifier for the topic
232232
- `capacity` - Maximum number of messages in buffer
233233

234-
**Returns:** `Result<Topic<T>>`
234+
**Returns:** `Result\<Topic\<T\>\>`
235235

236236
**Example:**
237237
```rust
@@ -251,7 +251,7 @@ Creates a Topic from configuration file (`horus.toml`).
251251
**Parameters:**
252252
- `topic_name` - Name of the topic in config file
253253

254-
**Returns:** `Result<Topic<T>>`
254+
**Returns:** `Result\<Topic\<T\>\>`
255255

256256
**Config Example:**
257257
```toml
@@ -304,7 +304,7 @@ Receives the latest message from the topic. Non-blocking.
304304
**Parameters:**
305305
- `ctx` - Mutable reference to optional node context
306306

307-
**Returns:** `Option<T>` - Some(message) if available, None otherwise
307+
**Returns:** `Option\<T\>` - Some(message) if available, None otherwise
308308

309309
**Example:**
310310
```rust
@@ -979,7 +979,7 @@ impl Error {
979979

980980
## Result (HorusResult)
981981

982-
Type alias for Results using Error. The prelude exports `Result<T>` as a short alias.
982+
Type alias for Results using Error. The prelude exports `Result\<T\>` as a short alias.
983983

984984
```rust
985985
use horus::prelude::*;

0 commit comments

Comments
 (0)