文章目录
- thumbsup:把照片文件夹变成在线相册的命令行工具
- 用法
- 可以调整的参数
- 增量构建
- 适用场景
thumbsup:把照片文件夹变成在线相册的命令行工具
手里有一堆照片和视频,想找个方便的方式展示给别人看,大多数人的第一反应是传到网盘或者社交媒体。但如果你想要一个完全由自己控制的、可以在任何地方托管的相册网站,thumbsup 这个工具值得了解一下。
它是一个 Node.js 写的命令行工具,做的事情很简单:指向一个存放照片和视频的文件夹,它会自动生成一个静态网站。嵌套的子文件夹会变成独立的相册,图片会生成缩略图和多种分辨率的版本,最终输出的是一组可以直接部署的 HTML 文件。
用法
安装需要 Node.js 环境,加上 exiftool 和 GraphicsMagick 两个依赖。Mac 用户用 brew 装就行,Linux 用户走包管理器。如果不想折腾环境,官方提供了 Docker 镜像,拉下来直接用。
命令本身就一行:
thumbsup --input ./photos --output ./gallery输入是照片文件夹的路径,输出是生成网站的目录。跑完之后,output 目录里就是完整的静态站点,扔到任何 HTTP 服务器上就能访问。
可以调整的参数
thumbsup 的命令行参数很多,覆盖了输入、输出、相册分组、网站配置四个方面。
输出方面,缩略图尺寸、预览图尺寸、全屏图尺寸都可以单独设置。照片质量默认 90,视频质量默认 75,都有对应的参数可以改。视频支持 mp4 和 webm 两种格式输出,还能开硬件加速。
相册分组默认按文件夹路径来,也支持按日期、关键词、人物来分。排序方式可以选择按标题、开始日期或结束日期,升序降序都行。每个相册页面显示多少文件也能限制。
网站方面,内置了四套主题:classic、cards、mosaic、flow。也可以指定自定义主题目录,或者用自定义的 CSS 文件覆盖样式。页面标题、页脚文字、Google Analytics 代码这些都能配置。如果指定了部署位置,工具还会自动生成 sitemap.xml 和 robots.txt。
增量构建
这是 thumbsup 比较实用的一个特性。默认模式下每次运行会全量重建,但可以切换到 partial 或 incremental 模式。incremental 模式会记录上次处理的状态,只处理新增或修改的文件,跳过没变的部分。照片数量大的时候,这个功能能省不少时间。
输出结构也有两种选择:按文件夹分目录,或者用后缀名区分。前者目录结构清晰,后者文件扁平,看个人偏好。
适用场景
家庭照片整理、团队活动照片分享、摄影师作品展示,这些场景都合适。生成的是纯静态文件,不需要数据库,不需要后端服务,部署成本低。配合 S3 或者 Cloudflare Pages 这类静态托管服务,基本零运维。
视频处理需要额外装 FFmpeg,GIF 动图需要 gifsicle,RAW 格式需要 dcraw。不是必须的,但装上之后支持的格式更全。
工具在 GitHub 上有 856 个 Star,MIT 协议,代码完全开源。出了问题可以开 issue,也可以自己改代码。文档写得比较全,命令行每个参数都有说明。
源。出了问题可以开 issue,也可以自己改代码。文档写得比较全,命令行每个参数都有说明。