您自己的静态 URL 缩短器 ⚡️
发布在 Github Pages 上的静态站点生成器现在非常流行。但是静态 URL 缩短器(更不用说生成器)怎么样,它允许您根据静态文件重定向 URL?
通常,开发人员最终会为此设置一个带有重定向的服务器(不是静态的)。这就是 URLZap 的用武之地。它使用文件和 HTML 魔法生成 URL,允许用户将自己的 URL 重定向到 Github Pages。
与静态网站生成器类似,但针对 URL
随身携带(无论是否缩短)网址
可与 Github 页面一起使用
无需运行服务器或设置 HTTP 301 重定向
示例项目: brunoluiz/_
您可能会问自己:如果没有服务器,这是如何完成的?好吧,答案就在于<meta http-equiv="refresh" />
。它作为 HTTP 301(重定向)状态代码工作,但它是在客户端完成的。 w3c 网站上有更多解释。
基于包含所需路径和 URL 的config.yml
, urlzap
将创建使用元刷新标记的index.html
文件。作为 HTTP 301,它并不完美,但也相当接近。其他静态网站生成器(例如 Hugo)也使用类似的策略。
一个例子是:
路径: './links' # 默认为 './' urls: google: https://google.com 工具:github:https://github.com
映射中的每个键将映射到{.path param}/{key}
路由,重定向到{value}
。这将生成以下内容:
- links/ - google/ - index.html (contains redirect) - tools/ - github/ - index.html (contains redirect)
例如,这些文件可以上传到 Github Pages,不需要任何服务器。 在brunoluiz/_
上,您可以看到示例config.yml
并在gh-pages
分支中查看输出
检查版本部分以获取更多信息详细信息
使用brew
来安装它
brew tap brunoluiz/tap brew install urlzap
使用前面的 YAML 示例:
路径: './links' # 默认为 './' urls: google: https://google.com 工具:github:https://github.com
urls
:所需的 URL 映射,遵循{key}:{redirect URL}
模式
path
:输出路径
要生成静态文件,请运行urlzap generate
。
您很可能最终会将 Github Pages 与此工具一起使用。如果是这样,也许使用它并获得其好处的最佳方式是通过 Github Actions。前往brunoluiz/urlzap-github-action
了解有关如何安装它的更多详细信息,包括生成和部署。
️ 您可能需要在存储库中手动启用 Github Pages!更多详细信息请参见 Github Pages 指南
如果 Github Actions 不适合您,请尝试以下手动流程。
启用 Github Pages 并设置静态 HTML 文件所在的分支。更多详细信息请参见 Github Pages 指南
设置你的config.yml
提交并推送到main
签出您的 Github Pages 分支(通常是gh-pages
)并运行git reset --hard origin/main
(这会将 HEAD 重置为master
)
运行urlzap generate
提交并推动
以下脚本遵循上述步骤中的描述:
#!/bin/bash# 添加、提交并推送您的更改git add config.yml git commit -m 'chore: update config.yml'git push -u origin main# 使 gh-pages 分支与 maingit checkout gh-pages 相同 git reset --hard origin/main# 生成文件urlzap 生成# 添加、提交并推送生成的文件git add --all git commit -m 'chore: 更新 HTML 文件' git push -u origin gh-pages --force