Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

静态图片画廊

这是一个基于原生 HTML、CSS、JavaScript 和 Webpack 的静态图片画廊。图片放在 img/ 目录中,构建后将 dist/ 目录部署到静态文件服务器即可。

图片与资源

项目支持递归目录中的 AVIF、BMP、GIF、JPEG、PNG、SVG 和 WebP 图片。隐藏文件和隐藏目录会被忽略。

构建资源包括:

  • 原图:点击图片或切换到大图时加载
  • 缩略图:构建前使用 sharp 生成 WebP 缩略图,画廊列表使用懒加载
  • metadata.json:描述图片目录树和原图、缩略图的对应关系

缩略图生成在每次构建或启动开发服务时都会覆盖执行。metadata 默认也会重新生成;如果需要保留已有的 metadata,可使用 --keep-meta

安装依赖

npm install

生产构建

直接运行会依据img/下的图片生成metadata和缩略图,开箱即用。

npm run build

如果构建时需要保留已有 metadata(例如想在metadata里手工维护文件顺序、修改名字等,需要先生成metadata(见下)):

npm run build-with-meta

正式发布时可以指定资源版本前缀:

npm run build -- --build-version v1

也可以通过环境变量指定版本:

BUILD_VERSION=v1 npm run build

未指定版本时,Webpack 不添加版本前缀,只使用内容哈希;指定 --build-version 时,版本号会作为资源文件名前缀。构建产物位于 dist/,其中包含入口 HTML、CSS、JavaScript、原图和缩略图。

指定版本的目的是方便更新和维护(快速移除旧版本的资源)

手动生成资源

手动生成缩略图和 metadata:

npm run generate:assets

默认行为会覆盖 metadata.json。保留现有 metadata:

npm run generate:assets -- --keep-meta

也可以单独执行:

npm run generate:thumbnails
npm run generate:metadata

开发服务

npm run dev

默认地址为 http://127.0.0.1:8080。开发服务启动前会重新生成缩略图和 metadata。

保留已有 metadata:

npm run dev-with-meta

可以通过环境变量调整监听地址和端口:

HOST=0.0.0.0 PORT=3000 npm run dev

图片浏览体验

图片列表只请求可视区域附近的缩略图。打开查看器时先显示缩略图占位,并在原图加载期间显示加载动画;当前原图加载后,会预取相邻图片,以便使用上一张、下一张导航时更快显示。

大图查看器支持:

  • 鼠标滚轮和按钮缩放
  • 键盘方向键切换图片
  • 双击切换缩放
  • 手机双指缩放和拖动

发布建议

最终只需发布 dist/ 内容。入口页建议设置为 no-cache 或要求边缘节点重新验证;带内容哈希的图片、CSS 和 JavaScript 可以设置较长缓存时间。

About

gallery online

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages