gr-apollo/docs/astro.config.mjs
Ryan Malloy a06f5e8dc1 Add Open Graph image generation for all docs pages
Custom renderer with NASA-blue theme, Inter font, signal arc decoration.
Generates 1200x630 PNG per page at build time via astro-opengraph-images.
Head component injects og:image meta tag using getImagePath().
2026-02-21 09:28:45 -07:00

91 lines
2.9 KiB
JavaScript

// @ts-check
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
import icon from 'astro-icon';
import rehypeMermaid from 'rehype-mermaid';
import opengraphImages from 'astro-opengraph-images';
import { render as ogRender } from './src/og-image.tsx';
import * as fs from 'node:fs';
const interRegular = fs.readFileSync('node_modules/@fontsource/inter/files/inter-latin-400-normal.woff');
const interBold = fs.readFileSync('node_modules/@fontsource/inter/files/inter-latin-700-normal.woff');
export default defineConfig({
site: 'https://gr-apollo.l.warehack.ing',
integrations: [
icon(),
starlight({
title: 'gr-apollo',
description: 'Apollo Unified S-Band decoder for GNU Radio 3.10+',
sidebar: [
{
label: 'Getting Started',
items: [
{ label: 'Introduction', slug: 'getting-started/introduction' },
{ label: 'Installation', slug: 'getting-started/installation' },
{ label: 'Quick Start', slug: 'getting-started/quick-start' },
],
},
{
label: 'Understanding Apollo USB',
items: [
{ label: 'Signal Architecture', slug: 'explanation/signal-architecture' },
{ label: 'PCM Frame Structure', slug: 'explanation/pcm-frames' },
{ label: 'Virtual AGC Integration', slug: 'explanation/virtual-agc' },
],
},
{
label: 'How-To Guides',
items: [
{ label: 'Tune Demodulator Parameters', slug: 'guides/tuning-parameters' },
{ label: 'Generate Test Signals', slug: 'guides/test-signals' },
{ label: 'Decode Voice Audio', slug: 'guides/voice-audio' },
{ label: 'Connect to Virtual AGC', slug: 'guides/agc-bridge' },
{ label: 'Work with PCM Telemetry', slug: 'guides/pcm-telemetry' },
],
},
{
label: 'Reference',
items: [
{ label: 'Block Reference', slug: 'reference/blocks' },
{ label: 'Constants & Parameters', slug: 'reference/constants' },
{ label: 'Protocol Specification', slug: 'reference/protocol' },
],
},
],
editLink: {
baseUrl: 'https://github.com/rpm/gr-apollo/edit/main/docs/',
},
components: {
Head: './src/components/Head.astro',
SocialIcons: './src/components/SocialIcons.astro',
},
}),
opengraphImages({
options: {
fonts: [
{
name: 'Inter',
weight: 400,
style: 'normal',
data: interRegular,
},
{
name: 'Inter',
weight: 700,
style: 'normal',
data: interBold,
},
],
},
render: ogRender,
}),
],
markdown: {
rehypePlugins: [
[rehypeMermaid, { strategy: 'pre-mermaid' }],
],
},
devToolbar: { enabled: false },
});