AI应用与工作流

Eleventy (11ty):现代静态站点生成器的全面指南

Eleventy(也称为11ty)是一个简单灵活的静态站点生成器,它允许你使用你选择的模板语言来构建快速且高性能的网站。它的核心优势在于极简的设计理念和强大的可扩展性,使其成为从小型个人博客到大型企业网站的理想选择。本文将深入探讨Eleventy的各个方面,帮助你快速上手并充分利用其潜力。什么是Eleventy?

本页目录
  1. 什么是 Eleventy?
  2. Eleventy 的核心特点
  3. 为什么选择 Eleventy?
  4. Eleventy 入门:快速开始
  5. Eleventy 配置文件 (.eleventy.js)
  6. 常用的配置选项
  7. Eleventy 模板语言
  8. Liquid 示例
  9. Eleventy 数据
  10. JSON 数据示例
  11. Eleventy 插件
  12. 常用的插件
  13. Eleventy 最佳实践
  14. Eleventy 与其他静态站点生成器对比
  15. Eleventy 资源

Eleventy(也称为 11ty)是一个简单灵活的静态站点生成器,它允许你使用你选择的模板语言来构建快速且高性能的网站。它的核心优势在于极简的设计理念和强大的可扩展性,使其成为从小型个人博客到大型企业网站的理想选择。本文将深入探讨 Eleventy 的各个方面,帮助你快速上手并充分利用其潜力。

什么是 Eleventy

Eleventy (11ty):现代静态站点生成器的全面指南:步骤或功能界面 1

Eleventy 是一个 JavaScript 静态站点生成器,它将模板文件和数据转换为完全可部署的 HTML。 与其他一些更重量级的框架不同,Eleventy 强调简单性和灵活性。它对模板引擎和项目结构没有严格的要求,允许开发者自由选择最适合自己需求的技术栈。

Eleventy 的核心特点

  • 简单易用: 学习曲线平缓,上手快。
  • 灵活自由: 支持多种模板语言 (如 Liquid, Nunjucks, Handlebars, Mustache, EJS, Haml, Pug, Markdown)。
  • 高性能: 生成的静态网站加载速度极快。
  • 可扩展性: 丰富的插件生态系统,方便扩展功能。
  • 无 JavaScript 客户端运行时: 生成的网站不需要额外的 JavaScript 依赖,减少了复杂性和提高了性能。
  • 数据驱动: 支持从 JSON, JavaScript, YAML, CSV 等多种数据源导入数据。

为什么选择 Eleventy

在众多的静态站点生成器中,Eleventy 凭借其独特的优势脱颖而出:

  • 性能优化: 生成的静态网站天然具有高性能,无需额外的优化。
  • 开发效率: 灵活的配置和强大的模板引擎提高了开发效率。
  • 可维护性: 清晰的项目结构和简单的代码风格易于维护。
  • SEO 友好: 静态网站更容易被搜索引擎抓取和索引。
  • 安全性: 由于没有数据库交互和服务器端代码,静态网站更加安全。

Eleventy 入门:快速开始

Eleventy (11ty):现代静态站点生成器的全面指南:步骤或功能界面 2

以下是如何开始使用 Eleventy 的简单步骤:

  1. 安装 Node.js 和 npm: 确保你的系统上已经安装了 Node.js 和 npm (Node Package Manager)。你可以从 Node.js 官网 下载安装包。
  2. 创建项目目录: 创建一个新的目录来存放你的 Eleventy 项目。
  3. 初始化 npm 项目: 在项目目录下运行 npm init -y 命令来创建一个 package.json 文件。
  4. 安装 Eleventy 运行 npm install @11ty/eleventy --save-dev 命令来安装 Eleventy
  5. 创建第一个页面: 创建一个名为 index.html 的文件,并添加一些 HTML 内容。
  6. 运行 Eleventy 在项目目录下运行 npx @11ty/eleventy 命令来生成静态网站。
  7. 查看生成的网站: 默认情况下,Eleventy 会将生成的网站输出到 _site 目录。你可以使用任何静态服务器来查看生成的网站。

Eleventy 配置文件 (.eleventy.js)

.eleventy.js 文件是 Eleventy 的核心配置文件。你可以在这个文件中配置 Eleventy 的各种选项,例如:

  • 输入和输出目录: 指定 Eleventy 读取模板文件和输出生成文件的目录。
  • 模板引擎: 配置 Eleventy 使用的模板引擎。
  • 插件: 注册和配置 Eleventy 插件。
  • 自定义过滤器: 创建自定义的模板过滤器。
  • 自定义短代码: 创建自定义的模板短代码。

常用的配置选项

Eleventy (11ty):现代静态站点生成器的全面指南:步骤或功能界面 3

以下是一些常用的 .eleventy.js 配置选项:

module.exports = function(eleventyConfig) {  // 设置输入目录  eleventyConfig.addPassthroughCopy("static");  // 设置输出目录  return {    dir: {      input: ".",      output: "_site"    }  };};

在上面的例子中,我们将输入目录设置为当前目录 (.),将输出目录设置为 _siteeleventyConfig.addPassthroughCopy("static"); 这行代码将 static 文件夹中的所有文件复制到输出目录,不会进行任何转换处理。

Eleventy 模板语言

Eleventy (11ty):现代静态站点生成器的全面指南:步骤或功能界面 4

Eleventy 支持多种模板语言,包括:

  • Liquid
  • Nunjucks
  • Handlebars
  • Mustache
  • EJS
  • Haml
  • Pug
  • Markdown

你可以根据自己的喜好和项目需求选择合适的模板语言。 Eleventy 会自动检测文件的扩展名,并使用相应的模板引擎进行处理。

Liquid 示例

以下是一个使用 Liquid 模板语言的示例:

<!DOCTYPE html><html><head>  <title>{{ title }}</title></head><body>  <h1>{{ title }}</h1>  <p>{{ content }}</p></body></html>

在这个例子中,{{ title }}{{ content }} 是 Liquid 变量,它们会在生成网站时被替换为实际的值。

Eleventy 数据

Eleventy 支持从多种数据源导入数据,包括:

  • JSON
  • JavaScript
  • YAML
  • CSV

你可以将数据存储在单独的文件中,然后在模板中使用这些数据。 这使得你可以轻松地管理和更新网站的内容。

JSON 数据示例

假设你有一个名为 data.json 的 JSON 文件,内容如下:

{  "title": "我的博客",  "description": "这是一个关于技术的博客"}

你可以在模板中使用 data.json 文件中的数据:

<!DOCTYPE html><html><head>  <title>{{ data.title }}</title>  <meta name="description" content="{{ data.description }}"></head><body>  <h1>{{ data.title }}</h1>  <p>{{ data.description }}</p></body></html>

Eleventy 插件

Eleventy 拥有丰富的插件生态系统,可以帮助你扩展 Eleventy 的功能。 插件可以用来处理各种任务,例如:

  • 代码高亮
  • 图片优化
  • 自动生成目录
  • 支持 RSS 订阅

常用的插件

以下是一些常用的 Eleventy 插件:

要使用插件,你需要在 .eleventy.js 文件中注册它:

const syntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight");module.exports = function(eleventyConfig) {  eleventyConfig.addPlugin(syntaxHighlight);  return {    dir: {      input: ".",      output: "_site"    }  };};

Eleventy 最佳实践

以下是一些使用 Eleventy 的最佳实践:

  • 保持简单: 尽量保持项目的简单性,避免过度设计。
  • 使用版本控制: 使用 Git 等版本控制系统来管理你的代码。
  • 自动化部署: 使用 CI/CD 工具来自动化部署你的网站。
  • 优化性能: 优化你的图片和代码,以提高网站的性能。
  • 定期更新: 定期更新 Eleventy 和插件,以获得最新的功能和安全补丁。

Eleventy 与其他静态站点生成器对比

以下表格对比了 Eleventy 与其他流行的静态站点生成器:

特征 Eleventy Jekyll Gatsby Hugo
编程语言 JavaScript Ruby JavaScript (React) Go
易用性
灵活性
性能 非常高
生态系统 非常高

Eleventy 资源

以下是一些有用的 Eleventy 资源:

希望本文能够帮助你了解和使用 Eleventy。祝你使用 Eleventy 构建出色的静态网站!想要了解更多关于静态站点生成器的信息,欢迎访问我们的网站。