博客系统 活跃维护

eleventy-base-blog

11ty/eleventy-base-blog

使用 Eleventy 静态网站生成器的博客网站入门仓库。

1544
Stars 标星
713
Forks 分支
17
Watchers 关注
23
Open Issues
Nunjucks
主要语言
MIT
开源协议
763 KB
仓库大小
7 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:11ty/eleventy-base-blog
git clone https://github.com/11ty/eleventy-base-blog.git
git clone git@github.com:11ty/eleventy-base-blog.git
README.md main

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。

eleventy-base-blog 第9版

一个入门仓库,展示如何使用 Eleventy 网站生成器(使用 v3.0 版本)构建博客。

入门

  1. 创建一个目录并进入它:
mkdir my-blog-name
cd my-blog-name
  1. 克隆这个仓库
git clone https://github.com/11ty/eleventy-base-blog.git .

可选: 查看 eleventy.config.js 和 _data/metadata.js 以配置网站的选项和数据。

  1. 安装依赖项
npm install
  1. Run Eleventy

将生产就绪的构建生成到 _site 文件夹:

npx @11ty/eleventy

或者在本地开发服务器上构建和托管:

npx @11ty/eleventy --serve

或者你可以运行 调试模式 来查看所有内部细节。

功能

  • 使用 Eleventy v3 实现零 JavaScript 输出。
  • 性能优先:开箱即用的 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 中驱动。如果数据级联中设置非布尔值,模式验证器会显示错误。
  • 博客文章
    • 自动下一页/上一页链接
    • 可访问的标题深层链接
  • 生成的页面

演示

将其部署到你自己的网站

只需点击几下即可在以下服务上部署此 Eleventy 网站:

实现说明

  • 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 提供了如何使用它的示例。

内容安全策略

如果您的网站实施内容安全策略(如面向公众的网站应如此),您有几个选择(选择其中一个):

  1. 在 base.njk 中,删除 <style>{% getBundle "css" %}</style> 并取消注释 <link rel="stylesheet" href="{% getBundleFileUrl "css" %}">
  2. 使用 CSP 指令 style-src: 'unsafe-inline' 配置服务器(安全性较低)。
本站来源与版权声明
  • 本文标题:eleventy-base-blog - 使用 Eleventy 静态网站生成器的博客网站入门
  • 本文链接:https://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 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。