Skip to content

Docs dropdown, hardware page, and homepage updates#167

Merged
lordfolken merged 10 commits intomasterfrom
modernize/remove-jquery-replace-lightbox
Apr 9, 2026
Merged

Docs dropdown, hardware page, and homepage updates#167
lordfolken merged 10 commits intomasterfrom
modernize/remove-jquery-replace-lightbox

Conversation

@lordfolken
Copy link
Copy Markdown
Member

@lordfolken lordfolken commented Apr 9, 2026

Summary

This branch updates navigation, documentation entry points, the hardware compatibility page, and the home page.

Navigation

  • Docs is a dropdown (like Download) with Manual (/docs/#manual) and Hardware (/hardware/); the separate Overview item is removed.

Documentation

  • The manual section on /docs/ exposes a #manual id so the navbar Manual link lands correctly.

Hardware (/hardware/)

  • Expanded structure: embedded platforms, driver lists aligned with XCSoar Register.cpp, varios / sensors / radios, manufacturer links, Kobo models from Model.cpp, section anchors, and tightened copy.

Homepage

  • Refined hero spacing and feature lead-in; Device integration links to the hardware page.

Release post

  • OpenVario URL in the 7.44 release notes uses openvario.de.

Other

  • Pre-commit auto-fixes from hooks.

Summary by CodeRabbit

  • New Features

    • Added a dropdown navigation menu for the Docs section with links to Manual and Hardware.
  • Documentation

    • Expanded and reorganized hardware platform documentation with improved device support details.
    • Enhanced homepage with feature descriptions and added information about privacy and libre software.
    • Added documentation anchors for improved navigation linking.
  • Style

    • Updated homepage title styling with enhanced spacing and visual borders.
    • Refined navbar brand icon sizing.
  • Chores

    • Configuration formatting adjustments.

pre-commit-ci bot and others added 8 commits April 8, 2026 23:03
- 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.
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 9, 2026

📝 Walkthrough

Walkthrough

The 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

Cohort / File(s) Summary
Navigation & Dropdown Enhancement
_data/nav.yml, _includes/nav-main-items.html
Added type: docs_dropdown to "Docs" navbar item. Implemented conditional rendering for dropdown toggle with "Manual" and "Hardware" menu items, marking entries active based on page.menu or URL context.
Layout & Styling Updates
_includes/header.html, css/xcsoar.css
Wrapped title block in container <div> when tagline is present. Increased .home-page-title-row bottom margin (0.15rem→1.75rem), added dotted border-bottom, and increased navbar brand icon height (1.2em→2.4em).
Documentation Expansion
docs/index.md, hardware/index.md, index.html, _posts/2026-03-22-xcsoar-7-dot-44-released.md
Added manual section anchor ({#manual}). Reorganized hardware documentation from section-based layout to consolidated structure with dedicated embedded hardware, built-in device drivers, and expanded Android/Kobo sections with device lists and known issues. Enhanced homepage with features description and privacy/libre software callouts. Updated OpenVario URL reference.
Configuration Formatting
.stylelintrc.json, renovate.json
Reformatted ignoreFiles array to multi-line layout. Reorganized renovate.json fields, converted arrays to multi-line format, added explicit automerge flags to package rules, and reordered top-level configuration fields.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 A dropdown dances on the nav so bright,
While docs and hardware find their rightful flight,
Configuration tidy, styled with care,
The docs expand with knowledge fair! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: navigation dropdown for docs, hardware page restructure, and homepage updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch modernize/remove-jquery-replace-lightbox

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.cpp as 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

📥 Commits

Reviewing files that changed from the base of the PR and between 8f1fef8 and 771d2fd.

📒 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.md
  • css/xcsoar.css
  • docs/index.md
  • hardware/index.md
  • index.html
  • renovate.json

Comment on lines +15 to +16
<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>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Suggested change
<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.

Comment thread hardware/index.md
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
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Suggested change
### 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.

@lordfolken lordfolken merged commit 344f17f into master Apr 9, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant