feat: premium landing page, Swagger UI docs, full OG meta stack

- Premium landing page with nav, hero, stats, streaming flow, endpoint cards
- Full OG meta stack (OG, Twitter Card, JSON-LD WebAPI schema)
- SVG favicon matching miruro.tv icon style
- SVG share image for social sharing (1200x630)
- Dedicated docs.html with custom header and Swagger UI styling
- Canonical URLs, theme-color, robots meta
- Apple-touch-icon and mask-icon from miruro.tv
- Responsive design (mobile-friendly)
- Font: Inter (Google Fonts)
This commit is contained in:
Sʜɪɴᴇɪ Nᴏᴜᴢᴇɴ
2026-06-09 14:38:44 +05:30
parent 4b083a9bf7
commit 18a73c324e
5 changed files with 711 additions and 210 deletions
+1 -25
View File
@@ -76,31 +76,7 @@ app.use(express.static(path.join(__dirname, "public"), { redirect: false }));
// ---- FEATURE: Interactive Swagger UI documentation at /docs ----
app.get("/docs", (req, res) => {
res.send(`<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MiruroAPI — Swagger UI</title>
<link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@5/swagger-ui.css">
<style>body{margin:0;background:#0b1622;}</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="https://unpkg.com/swagger-ui-dist@5/swagger-ui-bundle.js"></script>
<script>
SwaggerUIBundle({
url: "/openapi.json",
dom_id: "#swagger-ui",
presets: [SwaggerUIBundle.presets.apis, SwaggerUIBundle.SwaggerUIStandalonePreset],
layout: "BaseLayout",
deepLinking: true,
defaultModelsExpandDepth: -1,
docExpansion: "list",
});
</script>
</body>
</html>`);
res.sendFile(path.join(__dirname, "public", "docs.html"));
});
// ══════════════════════════════════════════════════════════════