import {referencePreview} from '../lib/layout-images-client'; import {useState} from 'react'; import Head from 'next/head'; import {tutorialPost} from '../content/tool-links'; import {ideaMarkdown,type Idea,type Slide} from '../content/ideas'; import {Ref17Cover} from './Ref17Cover'; export function TemplateTrial({idea}:{idea:Idea}){ const template=idea.template!; const [slides,setSlides]=useState(idea.slides),[active,setActive]=useState(0),[masthead,setMasthead]=useState(template.masthead),[guides,setGuides]=useState(false),[notice,setNotice]=useState(''); const selected=slides[active],current={...idea,slides,template:{...template,masthead}}; const update=(patch:Partial)=>setSlides(old=>old.map((slide,i)=>i===active?{...slide,...patch}:slide)); const download=(text:string,type:string,name:string)=>{const url=URL.createObjectURL(new Blob([text],{type})),a=document.createElement('a');a.href=url;a.download=name;a.click();setTimeout(()=>URL.revokeObjectURL(url),500)}; async function exportSvg(){await document.fonts.ready;const svg=document.querySelector(`[data-proof="${selected.key}"] svg`);if(!svg)return;download(new XMLSerializer().serializeToString(svg),'image/svg+xml',`ref-17-${selected.key}.svg`);setNotice('已下载当前封面 SVG,可继续编辑文字与图形。')} const reset=()=>{setSlides(idea.slides);setMasthead(template.masthead);setGuides(false);setNotice('已恢复初始试版。')}; return
{idea.title} · Studio
← PROMPT 使用教程STUDIO / TEMPLATE PROOF排版教程 ↗
REF-17 · 同一母版 / 四张试版

先试封面,再填内容。

英文刊头、圆形叠标、左下主图与右侧窄栏保持同一套坐标。三组合集先用主题占位,暂不放入具体 Skills。

01 母版02 笔记复习03 教学资料04 英语学习