Docs dropdown, hardware page, and homepage updates#167
Conversation
for more information, see https://pre-commit.ci
- Introduce the bullet list with "Notable features include:" - Add closing paragraph on privacy, libre software (Wikipedia), and linking "improve" to the developer manual on Read the Docs
- Wrap tagline row in .container so the dotted rule matches navbar width - Increase margin below the hero title row before main content - Restore dotted border on .home-page-title-row where needed - Set navbar brand mark height to 2.4em for alignment with the title line
- Switch Docs from a single link to a Bootstrap dropdown (mirrors Download). - Items: Manual (/docs/#manual) and Hardware (/hardware/); omit separate Overview. - Active state includes hardware pages (menu hardware).
- Use ## Manual {#manual} so /docs/#manual matches the Docs dropdown Manual link.
- Embedded section; driver lists aligned with XCSoar Register.cpp; varios, sensors, radios. - Manufacturer links; OpenVario and related references; Kobo models from Model.cpp. - Section anchors on headings; drop redundant Peripherals block; tighten NEWS blurb.
📝 WalkthroughWalkthroughThe changes add a new docs dropdown navigation item, update layout and styling conventions, expand and reorganize hardware/documentation content, and reformat configuration files for consistency. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
hardware/index.md (1)
26-76: Driver inventory is manually duplicated from source and can drift.This section references
src/Device/Register.cppas the source but still hardcodes a long list; consider generating this block (or validating it in CI) to avoid stale docs across releases.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@hardware/index.md` around lines 26 - 76, The hardcoded driver list can drift from the canonical source in src/Device/Register.cpp; update the docs by replacing the manual list with a generated include or add a CI validation step: write a small script that parses src/Device/Register.cpp (extracting registered driver names/labels as declared in that file) and either regenerates the hardware/index.md block at build time or fails the CI if the markdown does not match the extracted list; reference the canonical source file src/Device/Register.cpp when implementing the script and use the driver registration entries found there as the single source of truth.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@_includes/nav-main-items.html`:
- Around line 15-16: The "Manual" submenu anchor in
_includes/nav-main-items.html doesn't set active/aria-current; update the <a>
for "Manual" to mirror the "Hardware" logic by adding the same Liquid
conditionals that append " active" to class when nav_url contains '/docs/' and
add aria-current="page" when that condition is true so the submenu item reflects
the current page.
In `@hardware/index.md`:
- Line 67: Add an explicit anchor to the "Transponders and radios" subsection
heading by updating the heading text "Transponders and radios" to include a
consistent anchor (e.g., "### Transponders and radios
{`#transponders-and-radios`}" or "{`#radios`}") so it matches the other peer
subsections and enables intra-page linking; locate the "Transponders and radios"
heading and append the chosen {#...} anchor immediately after the heading text.
---
Nitpick comments:
In `@hardware/index.md`:
- Around line 26-76: The hardcoded driver list can drift from the canonical
source in src/Device/Register.cpp; update the docs by replacing the manual list
with a generated include or add a CI validation step: write a small script that
parses src/Device/Register.cpp (extracting registered driver names/labels as
declared in that file) and either regenerates the hardware/index.md block at
build time or fails the CI if the markdown does not match the extracted list;
reference the canonical source file src/Device/Register.cpp when implementing
the script and use the driver registration entries found there as the single
source of truth.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: ee0c40e2-cbfa-4b67-ae9d-bb537271c9c8
📒 Files selected for processing (10)
.stylelintrc.json_data/nav.yml_includes/header.html_includes/nav-main-items.html_posts/2026-03-22-xcsoar-7-dot-44-released.mdcss/xcsoar.cssdocs/index.mdhardware/index.mdindex.htmlrenovate.json
| <li><a class="dropdown-item" href="/docs/#manual">Manual</a></li> | ||
| <li><a class="dropdown-item{% if nav_url contains '/hardware/' %} active{% endif %}" href="/hardware/"{% if nav_url contains '/hardware/' %} aria-current="page"{% endif %}>Hardware</a></li> |
There was a problem hiding this comment.
Manual submenu item should expose active/aria-current state.
On docs pages, the dropdown toggle is active, but the “Manual” submenu item never reflects current location (unlike “Hardware”).
Suggested fix
- <li><a class="dropdown-item" href="/docs/#manual">Manual</a></li>
+ <li><a class="dropdown-item{% if nav_url == '/docs/' or nav_url == '/docs/index.html' %} active{% endif %}" href="/docs/#manual"{% if nav_url == '/docs/' or nav_url == '/docs/index.html' %} aria-current="page"{% endif %}>Manual</a></li>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <li><a class="dropdown-item" href="/docs/#manual">Manual</a></li> | |
| <li><a class="dropdown-item{% if nav_url contains '/hardware/' %} active{% endif %}" href="/hardware/"{% if nav_url contains '/hardware/' %} aria-current="page"{% endif %}>Hardware</a></li> | |
| <li><a class="dropdown-item{% if nav_url == '/docs/' or nav_url == '/docs/index.html' %} active{% endif %}" href="/docs/#manual"{% if nav_url == '/docs/' or nav_url == '/docs/index.html' %} aria-current="page"{% endif %}>Manual</a></li> | |
| <li><a class="dropdown-item{% if nav_url contains '/hardware/' %} active{% endif %}" href="/hardware/"{% if nav_url contains '/hardware/' %} aria-current="page"{% endif %}>Hardware</a></li> |
🧰 Tools
🪛 HTMLHint (1.9.2)
[error] 16-16: Special characters must be escaped : [ < ].
(spec-char-escape)
[error] 16-16: Special characters must be escaped : [ > ].
(spec-char-escape)
[error] 16-16: Tag must be paired, no start tag: [ ]
(tag-pair)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@_includes/nav-main-items.html` around lines 15 - 16, The "Manual" submenu
anchor in _includes/nav-main-items.html doesn't set active/aria-current; update
the <a> for "Manual" to mirror the "Hardware" logic by adding the same Liquid
conditionals that append " active" to class when nav_url contains '/docs/' and
add aria-current="page" when that condition is true so the submenu item reflects
the current page.
| Bluetooth adapters to your Android | ||
| - *IOIO*: the wired solution; one IOIO adapter has up to 4 serial | ||
| ports and charges your Android at the same time | ||
| ### Transponders and radios |
There was a problem hiding this comment.
Add an explicit anchor to the radios section heading.
Line 67 is the only peer subsection without a {#...} anchor, which makes intra-page linking inconsistent.
Suggested fix
-### Transponders and radios
+### Transponders and radios {`#transponders-and-radios`}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ### Transponders and radios | |
| ### Transponders and radios {`#transponders-and-radios`} |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@hardware/index.md` at line 67, Add an explicit anchor to the "Transponders
and radios" subsection heading by updating the heading text "Transponders and
radios" to include a consistent anchor (e.g., "### Transponders and radios
{`#transponders-and-radios`}" or "{`#radios`}") so it matches the other peer
subsections and enables intra-page linking; locate the "Transponders and radios"
heading and append the chosen {#...} anchor immediately after the heading text.
Normalize JSON formatting so the pre-commit pretty-format-json hook passes.
Summary
This branch updates navigation, documentation entry points, the hardware compatibility page, and the home page.
Navigation
/docs/#manual) and Hardware (/hardware/); the separate Overview item is removed.Documentation
/docs/exposes a#manualid so the navbar Manual link lands correctly.Hardware (
/hardware/)Register.cpp, varios / sensors / radios, manufacturer links, Kobo models fromModel.cpp, section anchors, and tightened copy.Homepage
Release post
openvario.de.Other
Summary by CodeRabbit
New Features
Documentation
Style
Chores