Bridgetown
由 Ruby 驱动、可从静态生成渐进扩展到服务端渲染的现代网站框架。
项目概述
Bridgetown 将 Markdown、Ruby 数据和 ERB、Serbea 或 Liquid 模板构建为网站,并提供 Ruby 组件、esbuild 前端资源管线,以及基于 Roda 的可选动态路由和服务端渲染。
Bridgetown 是采用 MIT 许可证、由 Ruby 驱动的渐进式网站生成器与全栈框架。它最初源自 Jekyll,但已经发展出独立的 Resource 内容引擎、Ruby 组件、ERB/Serbea/Liquid 模板、esbuild 前端资源管线和现代开发服务器。项目可以从预生成到 output 目录的纯静态网站开始,再按路由引入 Roda、SSR、Session 或 API,而无需一开始就承担完整服务端应用的复杂度。
主要特点
Bridgetown 将 Ruby 内容编程、组件化模板、现代前端构建和可选服务端路由放在同一套渐进架构中。
渐进式生成
默认在构建期生成静态 HTML,需要时可按路由加入 SSR、动态数据和客户端渲染,让不同页面采用合适的生成时机。
Resource 与 Collection
Page、Post 和自定义 Collection 统一为 Resource,可配置永久链接、Taxonomy、关联、分页和外部内容源。
多种 Ruby 模板
默认使用 ERB,也支持 Serbea、Liquid 和 Streamlined;同一项目可以按文件混合模板类型。
Ruby 组件系统
Bridgetown::Component 支持初始化参数、生命周期、Slot、Helper 和并置模板,并可将组件组织成可测试的设计系统。
现代前端资源管线
内置 esbuild 集成处理 JavaScript、CSS、PostCSS、代码拆分和静态资源,也可启用 Sass 或接入 npm 生态。
数据文件与 Ruby 数据
src/_data 可加载 YAML、JSON、CSV、TSV 和 Ruby 文件,并通过 site.data 或响应式 Signal 在模板和插件中访问。
Roda 服务端能力
Rack 兼容服务器以 Roda 处理静态文件和自定义 API;可选插件进一步提供 SSR、Session 与文件式动态路由。
插件与 Automation
Ruby Gem 插件可扩展构建、内容和组件,Automation 则能自动修改项目文件并安装前后端依赖。
适用场景
适合 Ruby 团队、内容驱动网站,以及希望以 SSG 起步并为少数交互页面保留 SSR 或 API 扩展空间的项目。
内容与品牌网站
Markdown、Collection、组件和前端资源管线适合企业官网、产品介绍、活动页和长期运营的内容栏目。
博客与数字出版
Post、Taxonomy、永久链接、Feed 和数据文件适合个人博客、杂志、更新日志与专题出版。
开源项目文档
内容可与 Ruby 项目同仓管理,使用自定义 Collection、组件和代码高亮组织指南与版本文档。
Ruby 团队的营销前端
熟悉 Ruby、ERB 和 Gem 的团队可以复用语言能力,同时通过 esbuild 使用现代 CSS 与 JavaScript。
静态优先的交互应用
大部分页面预生成,仅为搜索、表单、账户或个性化页面添加 Roda 路由、SSR 或 Islands。
组件化设计系统
Ruby Component、Slot 和并置的模板、CSS、JavaScript 适合维护服务端渲染的可复用 UI 组件。
优点与注意事项
技术选型不仅要看能力,也要理解它带来的团队成本。
主要优点
Bridgetown 擅长的地方
- 可以从纯静态网站平滑扩展到 SSR 与 API,无需整体重构
- Ruby 组件比仅靠 Liquid Include 更适合封装复杂视图逻辑
- ERB、Serbea、Liquid 和纯 Ruby 模板为团队提供灵活选择
- esbuild、PostCSS 与 npm 集成覆盖现代前端资源工作流
- Resource、Collection 和 Ruby 数据文件能表达丰富内容模型
- 输出标准静态文件,也可作为 Rack 应用部署
需要注意
采用前应考虑的问题
Ruby 负责网站生成与服务端逻辑,Node 负责前端资源;本地和 CI 都应锁定两套运行时与依赖版本。
主题、插件、教程和托管范例少于 Jekyll、Hugo 或 Next.js,采用关键集成前应检查维护活跃度。
项目可混合 SSG、SSR、Roda 和客户端代码,团队应规定各类页面的渲染方式,避免架构逐渐失去一致性。
虽然保留许多熟悉概念,但 Resource 引擎、配置、组件和构建流程已有明显差异,迁移时需逐项验证插件和模板。
纯静态输出可托管在任意 CDN;启用 Roda、SSR 或 Session 后,则需要运行 Ruby 的 Rack 主机和相应运维。
ERB 和 Ruby 允许执行任意逻辑,复杂查询与业务规则应移入 Component、Builder 或服务对象,并配套测试。
快速开始
安装 Bridgetown,创建默认 ERB 项目,添加 Markdown 内容和 Ruby 组件,再启动预览并生成生产文件。
bashruby --version
node --version
gem install bridgetown -N
bridgetown new mysite
cd mysite
bin/bridgetown startyaml# src/_data/site_metadata.yml
title: 开源项目志
tagline: 记录值得关注的开源软件
description: 使用 Bridgetown 构建的内容网站
lang: zh-CNmarkdown---
layout: post
title: "Hello Bridgetown"
date: 2026-07-24
description: "使用 Ruby 与 Markdown 发布第一篇内容"
tags:
- Bridgetown
- Ruby
---
Bridgetown 可以先生成静态页面,再按需加入动态路由。ruby# src/_components/project_card.rb
class ProjectCard < Bridgetown::Component
def initialize(name:, href:, description:)
@name = name
@href = href
@description = description
end
endhtml<!-- src/_components/project_card.erb -->
<article class="project-card">
<h2>
<a href="<%= @href %>"><%= @name %></a>
</h2>
<p><%= @description %></p>
</article>
<!-- 在任意 ERB 页面中使用 -->
<%= render ProjectCard.new(
name: "Bridgetown",
href: "https://www.bridgetownrb.com/",
description: "Ruby 驱动的渐进式网站框架"
) %>bash# 本地开发服务器默认运行在 localhost:4000
bin/bridgetown start
# 同时构建前端资源与静态网站
BRIDGETOWN_ENV=production bin/bridgetown deploy
# 生成结果位于 output 目录下一步:项目内始终优先使用 bin/bridgetown,以确保命令采用 Gemfile 锁定的版本;生产构建设置 BRIDGETOWN_ENV=production,并使用 bin/bridgetown deploy 同时构建前端资源与网站输出。
类似项目
这些框架同样处理内容、模板和静态输出,但 Bridgetown 更强调 Ruby 组件与从 SSG 到 Roda SSR 的渐进路径。
Bridgetown vs Jekyll
Bridgetown 从 Jekyll 社区与概念中起步,但面向更现代的 Ruby Web 开发重新设计;Jekyll 保持经典、稳定的静态生成模型,Bridgetown 则加入 Ruby 组件、esbuild 和可选 Roda 服务端能力。
| 比较维度 | Bridgetown | Jekyll |
|---|---|---|
| 核心定位 | 渐进式网站生成器与可选全栈框架 | 专注内容和博客的静态站点生成器 |
| 模板系统 | ERB、Serbea、Liquid 与 Streamlined 可混用 | 以 Liquid、Layout 和 Include 为核心 |
| 内容模型 | Resource、Page、Post、自定义 Collection 与关系 | Post、Page、Collection 与 Data File |
| 组件能力 | Ruby Component、生命周期、Slot 和并置资源 | 主要通过 Include、Layout 和插件复用 |
| 前端资源 | 集成 esbuild、PostCSS、npm,可选 Sass | 内置 Sass,复杂 JavaScript 通常另行配置 |
| 动态能力 | 可选 Roda API、SSR、Session 与动态路由 | 构建期静态输出,动态功能依赖外部系统 |
| 生态与托管 | 社区更小,静态或 Rack 两种部署路径 | 主题插件成熟,并与 GitHub Pages 深度集成 |
| 更适合 | Ruby 团队、组件化 UI 和静态到动态渐进项目 | 经典博客、GitHub Pages 和长期稳定内容站 |
如果目标是简单博客、依赖 GitHub Pages 原生构建,或希望采用最成熟的 Liquid 生态,Jekyll 更直接;如果团队熟悉 Ruby,希望使用 ERB 与可测试组件、现代前端打包,或预期部分页面未来需要 SSR 和 API,Bridgetown 的扩展路径更完整。迁移现有 Jekyll 站点前,应先核对插件、主题和 Front Matter 行为,而不是把它视为无差别替换。
资料核验
版本、维护信息与本页采用的官方资料来源。
本次核验覆盖 Bridgetown 的核心定位、主要能力、官方入口与开源许可。项目版本持续更新,具体补丁版本、兼容性和迁移要求请在采用前继续核对官方发布记录。
官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 7 月 22 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。