feat: add fullscreen docs demo routes
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
import { copyFile, mkdir } from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const siteRoot = path.resolve(fileURLToPath(new URL("..", import.meta.url)));
|
||||
const distRoot = path.join(siteRoot, "dist");
|
||||
|
||||
const userRoutes = [
|
||||
"home",
|
||||
"install",
|
||||
"trial",
|
||||
"invite",
|
||||
"devices",
|
||||
"support",
|
||||
"settings",
|
||||
];
|
||||
|
||||
const adminRoutes = [
|
||||
"stats",
|
||||
"users",
|
||||
"payments",
|
||||
"promos",
|
||||
"ads",
|
||||
"broadcast",
|
||||
"logs",
|
||||
"support",
|
||||
"tariffs",
|
||||
"appearance",
|
||||
"translations",
|
||||
"backups",
|
||||
"settings",
|
||||
];
|
||||
|
||||
const demoRoutes = [
|
||||
...userRoutes.map((route) => `demo/${route}`),
|
||||
"demo/admin",
|
||||
...adminRoutes.map((route) => `demo/admin/${route}`),
|
||||
];
|
||||
|
||||
const runtimeRoutes = [
|
||||
...userRoutes.map((route) => `demo/runtime/${route}`),
|
||||
"demo/runtime/admin",
|
||||
...adminRoutes.map((route) => `demo/runtime/admin/${route}`),
|
||||
];
|
||||
|
||||
async function copyHtml(source, route) {
|
||||
const targetDir = path.join(distRoot, route);
|
||||
await mkdir(targetDir, { recursive: true });
|
||||
await copyFile(source, path.join(targetDir, "index.html"));
|
||||
}
|
||||
|
||||
const demoShell = path.join(distRoot, "demo", "index.html");
|
||||
const runtimeApp = path.join(distRoot, "demo", "runtime", "app.html");
|
||||
|
||||
for (const route of demoRoutes) {
|
||||
await copyHtml(demoShell, route);
|
||||
}
|
||||
|
||||
for (const route of runtimeRoutes) {
|
||||
await copyHtml(runtimeApp, route);
|
||||
}
|
||||
|
||||
console.log(
|
||||
`Materialized ${demoRoutes.length} public demo routes and ${runtimeRoutes.length} runtime routes`,
|
||||
);
|
||||
@@ -102,7 +102,7 @@ function extraFrontmatter(sourceRelativePath) {
|
||||
' html: \'<img class="minishop-hero-screenshot" src="/remnawave-minishop.webp" alt="Интерфейс Remnawave Minishop" width="1920" height="1080" loading="eager" decoding="async" />\'',
|
||||
' actions:',
|
||||
' - text: "Демо"',
|
||||
' link: /demo/',
|
||||
' link: /demo/home',
|
||||
' icon: right-arrow',
|
||||
' - text: "Установка"',
|
||||
' link: /getting-started/setup/',
|
||||
|
||||
Reference in New Issue
Block a user