Add custom markdown pages feature to web dashboard

Allows adding static content pages (About, FAQ, etc.) as markdown files
with YAML frontmatter. Pages are stored in PAGES_HOME directory (default:
./pages), automatically appear in navigation menu, and are included in
the sitemap.

- Add PageLoader class to parse markdown with frontmatter
- Add /pages/{slug} route for rendering custom pages
- Add PAGES_HOME config setting to WebSettings
- Add prose CSS styles for markdown content
- Add pages to navigation and sitemap
- Update docker-compose.yml with pages volume mount
- Add comprehensive tests for PageLoader and routes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Louis King
2026-02-06 18:36:23 +00:00
parent 99206f7467
commit 0f50bf4a41
13 changed files with 836 additions and 3 deletions

29
example/pages/about.md Normal file
View File

@@ -0,0 +1,29 @@
---
title: About
slug: about
menu_order: 10
---
# About Our Network
Welcome to our MeshCore mesh network! This page demonstrates the custom pages feature.
## What is MeshCore?
MeshCore is an open-source off-grid LoRa mesh networking platform. It enables peer-to-peer communication without relying on traditional internet or cellular infrastructure.
## Our Mission
Our community-operated network aims to:
- Provide resilient communication during emergencies
- Enable outdoor enthusiasts to stay connected in remote areas
- Build a community of mesh networking enthusiasts
## Getting Started
To join our network, you'll need:
1. A compatible LoRa device (T-Beam, Heltec, RAK, etc.)
2. MeshCore firmware installed
3. The correct radio configuration for our region