问题与选择
初版需要多个真实 HTML 页面,同时能直接从文件夹打开。运行时不依赖打包器、远端字体或 API,可以让内容与导航在没有服务端的情况下保持可读。
共享内容在生成时组合
build.cjs 负责组合顶部导航、底部链接、页面标题和正文。页面素材分别存放于内容模块中,生成后每个 HTML 都有完整的导航,不必等待 JavaScript 才出现。
修改共享菜单后重新运行生成脚本,所有页面会同步更新。styles.css 维护同一组颜色、字号、间距和响应式规则。
按需要增强交互
app.js 只处理菜单关闭、作品筛选、站内搜索以及本地工具。搜索索引以普通脚本加载,因此 file:// 打开时不依赖 fetch 请求。输入文本通过 textContent 写入页面,避免被当作 HTML 执行。
验证方式
- 遍历所有内部链接,检查目标文件和锚点是否存在。
- 检查每页标题、主标题与本地图片是否成功加载。
- 在桌面和手机尺寸下检查横向溢出。
- 验证菜单键盘操作、搜索空结果和本地下载。
- 扫描 CSS 与脚本,确认没有动画、计时器或视觉循环。
何时需要扩展
当社区需要接收投稿、管理账号、保存作品或多人协作时,需要接入经过设计的服务端与数据模型。初版保留这些入口的语义,但没有伪造登录或提交成功。