机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。
eleventy-base-blog 第9版
一个入门仓库,展示如何使用 Eleventy 网站生成器(使用 v3.0 版本)构建博客。
入门
- 创建一个目录并进入它:
mkdir my-blog-name
cd my-blog-name
- 克隆这个仓库
git clone https://github.com/11ty/eleventy-base-blog.git .
可选: 查看 eleventy.config.js 和 _data/metadata.js 以配置网站的选项和数据。
- 安装依赖项
npm install
- Run Eleventy
将生产就绪的构建生成到 _site 文件夹:
npx @11ty/eleventy
或者在本地开发服务器上构建和托管:
npx @11ty/eleventy --serve
或者你可以运行 调试模式 来查看所有内部细节。
功能
- 使用 Eleventy v3 实现零 JavaScript 输出。
- 内容完全是预渲染的(这是一个静态网站)。
- 可以轻松部署到子文件夹而不更改任何内容
- 所有 URL 都与内容在文件系统上的位置解耦。
- 通过 Eleventy 数据级联 配置模板
- 性能优先:开箱即用的 Lighthouse 分数四百分以上!
- 0 累积布局偏移
- 0毫秒 总阻塞时间
- 本地开发实时重载由 Eleventy Dev Server 提供。
- 以内容为驱动的导航菜单
- 全自动图像优化
- 零 JavaScript 输出。
- 自动支持现代图像格式(例如 AVIF 和 WebP)
- 在
--serve期间按需处理图像,以加快本地构建速度。 - 如果可能,优先使用
<img>标记(单图像格式),但在多图像格式时会自动切换到<picture>。 - 带有
srcset和可选sizes的自动<picture>语法标记 - 包括
width/height属性以避免 内容布局偏移。 - 包含
loading="lazy",实现无需 JavaScript 的原生懒加载。 - 包括
decoding="async" - 图片可以与博客文章文件放在同一位置。
- 每页 CSS 打包 通过
eleventy-plugin-bundle。 - 内置 语法高亮器(零 JavaScript 输出)。
- 草稿内容:使用
draft: true将任何模板标记为草稿。草稿仅在--serve/--watch中包含,不会出现在完整构建中。这由addPreprocessor的配置 API 在eleventy.config.js中驱动。如果数据级联中设置非布尔值,模式验证器会显示错误。 - 博客文章
- 自动下一页/上一页链接
- 可访问的标题深层链接
- 生成的页面
- 首页、归档页和关于页。
- 包含 Atom 提要(可轻松一行切换使用 RSS 或 JSON)
sitemap.xml- 零维护标签页面 (在演示中查看)
- 内容未找到(404)页面
演示
将其部署到你自己的网站
只需点击几下即可在以下服务上部署此 Eleventy 网站:
- 阅读更多关于部署 Eleventy 项目到网站的信息。
- 将此部署到 Netlify
- 部署到 Vercel
- 查看
.github/workflows/gh-pages.yml.sample了解有关部署到 GitHub Pages的信息。 - 在 Stackblitz 上试用
实现说明
content/about/index.md是一个内容页面示例。content/blog/包含博客文章,但实际上它们可以放在任何目录中。它们只需要包含posts标签即可被包含在博客文章的集合中。- 在您的 front matter 中使用
eleventyNavigation键(通过Eleventy 导航插件)将模板添加到顶级站点导航中。这在content/index.njk和content/about/index.md中都有应用。 - 内容可以是任何模板格式(例如,博客文章不必仅限于 markdown)。在
eleventy.config.js->templateFormats配置项目支持的模板。 - 输入目录中的
public文件夹将复制到输出文件夹(通过addPassthroughCopy在eleventy.config.js文件中)。这意味着./public/css/*在构建完成后将位于./_site/css/*。 - 此项目使用三个Eleventy 布局:
_includes/layouts/base.njk:顶层 HTML 结构_includes/layouts/home.njk:主页模板(包含在base.njk中)_includes/layouts/post.njk:博客文章模板(包装在base.njk中)
_includes/postslist.njk是一个 Nunjucks include,是一个可重用组件,用于显示所有文章的列表。content/index.njk提供了如何使用它的示例。
内容安全策略
如果您的网站实施内容安全策略(如面向公众的网站应如此),您有几个选择(选择其中一个):
- 在
base.njk中,删除<style>{% getBundle "css" %}</style>并取消注释<link rel="stylesheet" href="{% getBundleFileUrl "css" %}"> - 使用 CSP 指令
style-src: 'unsafe-inline'配置服务器(安全性较低)。
本站来源与版权声明
- 本文标题:eleventy-base-blog - 使用 Eleventy 静态网站生成器的博客网站入门
- 本文链接:https://www.cn121.com/blog/11ty-eleventy-base-blog.html
- 原项目:11ty/eleventy-base-blog 版权归原作者 11ty 及贡献者所有
- 收录信息:本站于 2026-10-08 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 11ty/eleventy-base-blog。
- 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。