Connect all 27 source layouts to parameterized Studio pages and shared design storage
studio CI and deployment / verify-and-deploy (push) Successful in 5m55s
waterfall-wiki CI and deployment / verify-and-deploy (push) Failing after 18m23s

This commit is contained in:
2026-10-27 14:51:17 +08:00
parent 00e1b70398
commit 94932418ca
28 changed files with 374 additions and 4 deletions
@@ -0,0 +1,12 @@
/** Run only inside the Wiki container via auth-cli.cjs run. API-only editorial update. */
import {readFile,writeFile} from 'node:fs/promises';
const base='http://127.0.0.1:3000',id='8eb8c76500580f7a4b56ba3c',dir='/tmp/prompt-layout-studio';
const layouts=JSON.parse(await readFile(dir+'/catalog.json','utf8'));
let markdown=await readFile(dir+'/tutorial.md','utf8');
markdown=markdown.replace('{{LAYOUTS}}',layouts.map(l=>`- **[${l.id} · ${l.name}](/studio/layouts/${l.id})** · [构件文档](${l.tutorialUrl}) · [API 参数](/studio/api/layouts/${l.id}?agent_mode=True)`).join('\n'));
const response=await fetch(base+'/api/notes/'+id);if(!response.ok)throw Error('Router unavailable');const {entry}=await response.json();
await writeFile('/tmp/prompt-layout-router-before.json',JSON.stringify(entry),{mode:0o600});
const tags=await fetch(base+'/api/tags').then(r=>r.json()),selected=tags.filter(t=>entry.categories.includes(t.name)||(entry.systemTags||[]).some(s=>s.id===t.id)).map(t=>t.id);
const result=await fetch(base+'/api/notes/'+id,{method:'PUT',headers:{'Content-Type':'application/json'},body:JSON.stringify({title:'27 套排版 · Studio 参数 API 与保存教程',description:'27 个原图对应效果页,按 T/I/D 构件调整参数;API 渲染、保存独立 ID 与再次编辑,和 Wiki 共用数据库。',markdown,tags:selected,assets:entry.assets,coverAssetId:entry.coverAssetId,revision:entry.revision})});
if(!result.ok)throw Error('Router update failed: '+result.status);
console.log(JSON.stringify({routerUpdated:true,studioPages:layouts.length,contentExported:false}));