mirror of
https://github.com/PR0M3TH3AN/VoxVera.git
synced 2026-10-27 09:40:40 +00:00
Shared voxvera.org links now render a real image card, not just a text summary. Adds site/og-card.jpg (1200x630, ~90KB, derived from the "say something… voxvera.org" custom art) and wires og:image + twitter:image + image dimensions/alt on the home, board, and safety pages, bumping twitter:card to summary_large_image. Per-flyer previews remain out of scope (fragment URLs are invisible to servers; this stays a purely static site). Test asserts all three pages declare the og:image and that the asset is served as JPEG. Full suite 378 passing. Co-Authored-By: Claude Opus 4.8 <[email protected]>
56 lines
2.5 KiB
HTML
56 lines
2.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>VoxVera — Safety & privacy</title>
|
|
<!-- Root-absolute asset paths: with Vercel cleanUrls + trailingSlash this
|
|
page is served at /safety/, so relative paths would 404. -->
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
|
<link rel="stylesheet" href="/nostr-client.css">
|
|
<meta name="description" content="What VoxVera protects, what it does not, and how to stay safer when publishing flyers.">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:site_name" content="VoxVera">
|
|
<meta property="og:title" content="VoxVera — Safety & privacy">
|
|
<meta property="og:description" content="What VoxVera protects, what it does not, and how to stay safer when publishing flyers.">
|
|
<meta property="og:url" content="https://voxvera.org/safety">
|
|
<meta property="og:image" content="https://voxvera.org/og-card.jpg">
|
|
<meta property="og:image:width" content="1200">
|
|
<meta property="og:image:height" content="630">
|
|
<meta property="og:image:alt" content="VoxVera — say something. voxvera.org">
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="VoxVera — Safety & privacy">
|
|
<meta name="twitter:description" content="What VoxVera protects, what it does not, and how to stay safer when publishing flyers.">
|
|
<meta name="twitter:image" content="https://voxvera.org/og-card.jpg">
|
|
</head>
|
|
<body class="safety-page">
|
|
<header class="topbar">
|
|
<div>
|
|
<h1 id="safety-title">Safety & privacy</h1>
|
|
</div>
|
|
<div class="topbar-controls">
|
|
<a id="safety-back" class="board-back" href="/">← Back to VoxVera</a>
|
|
<select id="safety-lang" aria-label="Language"></select>
|
|
</div>
|
|
</header>
|
|
<main class="safety-main">
|
|
<p id="safety-intro" class="safety-intro"></p>
|
|
<section class="safety-section safety-protects">
|
|
<h2 id="safety-protects-h"></h2>
|
|
<ul id="safety-protects"></ul>
|
|
</section>
|
|
<section class="safety-section safety-exposes">
|
|
<h2 id="safety-exposes-h"></h2>
|
|
<ul id="safety-exposes"></ul>
|
|
</section>
|
|
<section class="safety-section safety-tips">
|
|
<h2 id="safety-tips-h"></h2>
|
|
<ul id="safety-tips"></ul>
|
|
</section>
|
|
<p id="safety-closing" class="safety-closing"></p>
|
|
</main>
|
|
<script src="/locales.js"></script>
|
|
<script src="/safety.js"></script>
|
|
</body>
|
|
</html>
|