13 lines
1.6 KiB
JavaScript
13 lines
1.6 KiB
JavaScript
/** 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}));
|