b353a3de06
Co-Authored-By: Claude Code <noreply@anthropic.com>
11 lines
2.0 KiB
JavaScript
11 lines
2.0 KiB
JavaScript
const fs=require('fs'),path=require('path');
|
|
const root=__dirname;
|
|
const pages=[['login','登录','Login'],['settings','设置','Settings'],['password','修改密码','Change password'],['language','语言选择','App language'],['albums','相册列表','Albums'],['album-detail','相册详情','Album overview'],['album-actions','相册操作','Album actions'],['empty-album','空相册','Empty album'],['create-album','创建相册','New album'],['edit-album','编辑相册','Edit album'],['members','协作成员','Members'],['categories','分类管理','Categories'],['camera','拍摄','Camera'],['uploads','上传中心','Uploads'],['upload-errors','异常任务','Needs attention'],['upload-history','上传历史','Upload history'],['photos','照片管理','Manage photos'],['photo-detail','管理大图','Photo details'],['share','相册分享','Share album'],['hide-photo','隐藏确认','Hide photo']].map(([slug,zh,en],i)=>({id:i+1,file:`${String(i+1).padStart(2,'0')}-${slug}.html`,zh,en}));
|
|
fs.mkdirSync(path.join(root,'assets'),{recursive:true});
|
|
fs.copyFileSync(path.join(root,'../viewer-mobile-concept-2026-09-21.png'),path.join(root,'assets/reference.png'));
|
|
for(const page of pages)fs.writeFileSync(path.join(root,page.file),`<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"><title>PhotoLive · ${page.en}</title><link rel="stylesheet" href="styles.css"></head><body data-page="${page.id}"><main id="app" class="app"></main><script src="app.js"></script></body></html>`);
|
|
fs.writeFileSync(path.join(root,'pages.js'),'window.PREVIEW_PAGES='+JSON.stringify(pages,null,2)+';');
|
|
const QR=require(require.resolve('qrcode',{paths:[path.resolve(root,'../../../apps/admin')]}));
|
|
QR.toString('https://example.com/photolive-preview',{type:'svg',margin:2,color:{dark:'#172033',light:'#ffffff'}},(err,svg)=>{if(err)throw err;fs.writeFileSync(path.join(root,'assets/demo-qr.svg'),svg)});
|
|
console.log('Generated 20 page entry points and offline assets.');
|