grubby:用 Ruby 编写的、面向 Git 仓库的静态站点生成器

Lobsters Hottest 工具

摘要

grubby 是一个用 Ruby 编写的、面向裸 Git 仓库的静态站点生成器,从 RepoRat 分叉而来。它会在 git hooks 上自动构建仓库网页和索引,专为 NearlyFreeSpeech.NET 这类共享主机环境而设计。

<p><a href="https://lobste.rs/s/xpyahx/grubby_static_site_generator_for_git">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/10/04 10:59

# grubby 来源:https://git.btxx.org/grubby/ 用 Ruby 编写的、面向 Git 仓库的静态站点生成器。 fork 自并深受 RepoRat(https://www.ratfactor.com/repos/reporat/)启发。 ## 环境要求 - Git - Ruby 3.0+ - Kramdown ## 配置 Grubby 开箱即用,自带较强的设计立场。它旨在原样使用,无需太多调校。默认使用 Kramdown 作为 Markdown 解析器,你可以自由替换,但我无法保证替换后一切都能没有 bug!另外默认假定你所有的裸 git 仓库以 `.git` 扩展名结尾。核心仓库索引功能在缺少这一后缀时无法正常工作! 你*唯一*应该修改的文件是 `_config.yml`,用于设置核心域名和路径。 如果你想更换 CSS、导航链接或页脚内容,可以相应地编辑 `style.css`、`_header.html` 和 `_footer.html`。欢迎尝试! 默认情况下,核心的"仓库索引"会创建在主目录根部,文件名为 `index.html`。这个输出文件名也可以在 `_config.yml` 中修改。 ## 使用方法 本指南假设你使用的是某种"共享主机"(这里是 **NearlyFreeSpeech.NET**)。虽然在自己的 VPS 上运行过程也会非常类似。 以下内容基于你的裸 git 仓库位于 `/home/public/git.sitename.org` 这一前提。 1. 将本项目克隆到你的私有目录(即 `/home/private/`) 2. 进入 `/home/public` 下的某个仓库(即 `cd coolrepo.git`) 3. 在 hooks 下创建一个新文件:`touch /hooks/post-update` 4. 给该文件赋予执行权限:`chmod +x /hooks/post-update` 5. 将以下代码添加到该文件中: ```sh #!/bin/sh unset GIT_DIR # Needed for cloning over plain HTTP git update-server-info # Rebuild the static site from a temporary checkout repo_name=$(basename "$PWD" .git) temporary_dir=$(mktemp -d) git clone --quiet "$PWD" "$temporary_dir/$repo_name" cp "$PWD/description" "$temporary_dir/$repo_name/.git/description" (cd "$temporary_dir/$repo_name" && ruby /home/private/grubby/grubby.rb) rm -rf "$temporary_dir" ``` 现在你可以试用一下了!只需运行: ```sh ./hooks/post-update ``` 各个仓库的网站将生成在 `/home/public/git.sitename.org/coolrepo`,同时更新后的仓库索引(默认为 `index.html`)会生成在根目录 `/home/public/git.sitename.org/` 下。 你可以在此基础上扩展,例如改为在 `hooks/post-receive` 文件中调用,甚至使用全局的 `post-update`,以避免为每个项目重复包含这段脚本。 ## 注意事项 - **不会**为单个 commit 变更、分支等生成页面。

相似文章

Grit:用Rust和智能体重写Git

Hacker News Top

本文介绍了Grit,这是一个用Rust重新实现的Git新版本,通过了超过99%的Git测试套件,并且是通过AI智能体创建的。它旨在提供一种基于库、内存安全的替代方案,以取代原版Git。

用一个定制的静态网站生成器替代 Jekyll

Lobsters Hottest

nullprogram.com 的作者用 ssg 替代了 Jekyll,这是一个约 8000 行代码的定制静态网站生成器,采用「带模板的 C++20」编写,冷启动生成他的博客仅需 150 毫秒,零依赖且核心不依赖 libc。这一改变也解决了 Jekyll 糟糕的 Ruby 部署流程和 macOS 配置问题。

介绍 Grok Build(2 分钟阅读)

TLDR AI

Grok Build 是一款从终端运行的新编码代理,目前面向 SuperGrok Heavy 订阅者提供早期测试版。它支持插件、子代理和深度工作树集成,包括用于脚本编写的无头模式。