21 lines
683 B
JavaScript
21 lines
683 B
JavaScript
import { Hono } from 'hono';
|
|
import { urlFor, safeRel } from '../files.js';
|
|
import { buildSite } from '../hugo.js';
|
|
|
|
// Echte Hugo-Vorschau: ganze Site mit --buildDrafts nach preview/ bauen und die
|
|
// URL des Eintrags zurückgeben (so erscheinen auch draft:true-Einträge).
|
|
const preview = new Hono();
|
|
|
|
preview.post('/', async (c) => {
|
|
const { path: rel } = await c.req.json();
|
|
try {
|
|
const safe = safeRel(rel);
|
|
const build = await buildSite({ dest: 'preview', drafts: true });
|
|
return c.json({ ok: true, url: `/_preview${urlFor(safe)}`, hugo: build.stdout });
|
|
} catch (e) {
|
|
return c.json({ error: String(e.message || e) }, 500);
|
|
}
|
|
});
|
|
|
|
export default preview;
|