Add official @astrojs/rss integration to enable RSS feed subscription: - Install @astrojs/rss package - Create RSS endpoint at /rss.xml with blog posts - Add RSS autodiscovery meta tag in Layout - Update site URL from clawd.bot to openclaw.ai in config RSS feed includes post titles, descriptions, dates, authors, and categories. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
117 lines
3.5 KiB
Plaintext
117 lines
3.5 KiB
Plaintext
---
|
|
import Analytics from '@vercel/analytics/astro';
|
|
import SpeedInsights from '@vercel/speed-insights/astro';
|
|
|
|
interface Props {
|
|
title: string;
|
|
description?: string;
|
|
canonicalUrl?: string;
|
|
}
|
|
|
|
const {
|
|
title,
|
|
description = "OpenClaw — The AI that actually does things. Your personal assistant on any platform.",
|
|
canonicalUrl = "https://openclaw.ai/",
|
|
} = Astro.props;
|
|
---
|
|
|
|
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta name="description" content={description} />
|
|
<meta name="color-scheme" content="dark" />
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png" />
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
<link rel="canonical" href={canonicalUrl} />
|
|
<link rel="alternate" type="application/rss+xml" title="OpenClaw Blog" href="/rss.xml" />
|
|
|
|
<!-- Open Graph -->
|
|
<meta property="og:title" content={title} />
|
|
<meta property="og:description" content={description} />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:url" content={canonicalUrl} />
|
|
<meta property="og:image" content="https://openclaw.ai/og-image.png" />
|
|
<meta property="og:image:width" content="1200" />
|
|
<meta property="og:image:height" content="630" />
|
|
|
|
<!-- Twitter Card -->
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:title" content={title} />
|
|
<meta name="twitter:description" content={description} />
|
|
<meta name="twitter:image" content="https://openclaw.ai/og-image.png" />
|
|
|
|
<!-- Fonts: Clash Display + Satoshi from Fontshare -->
|
|
<link rel="preconnect" href="https://api.fontshare.com">
|
|
<link rel="preconnect" href="https://cdn.fontshare.com" crossorigin>
|
|
<link href="https://api.fontshare.com/v2/css?f[]=clash-display@700,600,500&f[]=satoshi@400,500,700&display=swap" rel="stylesheet">
|
|
|
|
<title>{title}</title>
|
|
|
|
<style is:global>
|
|
:root {
|
|
/* Deep space palette with lobster accents */
|
|
--bg-deep: #050810;
|
|
--bg-surface: #0a0f1a;
|
|
--bg-elevated: #111827;
|
|
|
|
/* Lobster coral spectrum */
|
|
--coral-bright: #ff4d4d;
|
|
--coral-mid: #e63946;
|
|
--coral-dark: #991b1b;
|
|
|
|
/* Bioluminescent cyan */
|
|
--cyan-bright: #00e5cc;
|
|
--cyan-mid: #14b8a6;
|
|
--cyan-glow: rgba(0, 229, 204, 0.4);
|
|
|
|
/* Text */
|
|
--text-primary: #f0f4ff;
|
|
--text-secondary: #8892b0;
|
|
--text-muted: #5a6480;
|
|
|
|
/* Borders */
|
|
--border-subtle: rgba(136, 146, 176, 0.15);
|
|
--border-accent: rgba(255, 77, 77, 0.3);
|
|
|
|
/* Fonts */
|
|
--font-display: 'Clash Display', system-ui, sans-serif;
|
|
--font-body: 'Satoshi', system-ui, sans-serif;
|
|
--font-mono: 'SF Mono', 'Fira Code', 'JetBrains Mono', monospace;
|
|
}
|
|
|
|
*, *::before, *::after {
|
|
box-sizing: border-box;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
html {
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
body {
|
|
font-family: var(--font-body);
|
|
background: var(--bg-deep);
|
|
color: var(--text-primary);
|
|
line-height: 1.6;
|
|
min-height: 100vh;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
::selection {
|
|
background: var(--coral-bright);
|
|
color: var(--bg-deep);
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<slot />
|
|
<Analytics />
|
|
<SpeedInsights />
|
|
</body>
|
|
</html>
|