#web-apps #gallery #photos #web #generate-html #generate-static #photo

bin+lib simple-gallery

生成一个无 JavaScript 的单页静态 Web 应用程序,提供简单的相册服务

4 个版本

0.1.1 2024 年 7 月 23 日
0.1.0 2024 年 7 月 22 日
0.0.2 2024 年 1 月 21 日
0.0.1 2022 年 7 月 6 日

#1496 in Web 编程

Download history 211/week @ 2024-07-20 54/week @ 2024-07-27

每月 265 次下载

AGPL-3.0-only

20KB
291

simple-gallery

一个用于创建极其简单的相册的便携式 Web 服务器,仅使用原生 JavaScript。它可以直接提供服务,或者仅生成原始 HTML,以便您可以在其他地方提供静态站点。

为什么?

分享照片很难。我不想在充斥着广告的第三方网站上创建账户。我希望自己托管一些活动照片,但处理开源 JavaScript 框架很困难。我想要的体验是:将一些图片放入目录中,运行二进制文件,就有了一个网站。一个简单的脚本足以生成静态资源,可以制作一个看起来不错的、基本的相册网站。您可以在 https://jawn.best/ 上看到示例。

工作原理

您只需要一个图像目录,最好是 PNG 格式。然后 simple-gallery

  1. 扫描目录 --directory=img 中的 PNG 文件(指定例如 --file-extension jpg 以覆盖)
  2. 否则,将在 127.0.0.1:3000 上启动一个 Web 服务器(指定 --bind-address--port 以覆盖)

安装

首先,请确保您已经安装了 Rust。然后

cargo install --force simple-gallery

要求

  1. 一些要服务的图像。
  2. 就是这样。

用法

simple-gallery 0.1.0
Generates a single-page static web application, with no JS, serving a simple photogallery

USAGE:
    simple-gallery [OPTIONS]

OPTIONS:
    -b, --bind-address <BIND_ADDRESS>
            Local IP address to bind to [default: 127.0.0.1]

    -d, --directory <DIRECTORY>
            On-disk path for directory of images to serve [default: img]

    -g, --generate
            Build static HTML and print to stdout, then exit

    -h, --help
            Print help information

    -p, --port <PORT>
            TCP port to listen on [default: 3000]

    -s, --shuffle
            Randomize order of images

    -t, --title <TITLE>
            Title for HTML page, e.g. "example.com" [default: simple-gallery]

    -V, --version
            Print version information

创建静态网站

具有以下目录结构

cool-pictures/
├── tree.png
├── dog.png
├── horse.png

运行

simple-gallery --generate --directory ./cool-pictures > index.html

现在您可以提供该目录,例如

python3 -m http.server --port 3000 --directory .

更多高级功能(常见问题解答)

许多功能都是故意省略的。没有导航功能:图像将无限期地转换。如果您想要获取特定图像,请查看源代码,并获取 <img src=""> URL。

参考文献

计算 CSS 动画持续时间值的逻辑来自这篇宝贵的博客文章。一如既往,MDN CSS 文档很有帮助。过渡的纯 JS 示例是从这篇有帮助的文章改编的。最后,虽然未使用,但 crate arse 可能有所帮助。

许可证

AGPLv3

依赖项

~16–28MB
~406K SLoC