Eleventy(也称为 11ty)是一个简单灵活的静态站点生成器,它允许你使用你选择的模板语言来构建快速且高性能的网站。它的核心优势在于极简的设计理念和强大的可扩展性,使其成为从小型个人博客到大型企业网站的理想选择。本文将深入探讨 Eleventy 的各个方面,帮助你快速上手并充分利用其潜力。
Eleventy 是一个 JavaScript 静态站点生成器,它将模板文件和数据转换为完全可部署的 HTML。 与其他一些更重量级的框架不同,Eleventy 强调简单性和灵活性。它对模板引擎和项目结构没有严格的要求,允许开发者自由选择最适合自己需求的技术栈。
在众多的静态站点生成器中,Eleventy 凭借其独特的优势脱颖而出:
以下是如何开始使用 Eleventy 的简单步骤:
npm init -y
命令来创建一个 package.json
文件。npm install @11ty/eleventy --save-dev
命令来安装 Eleventy。index.html
的文件,并添加一些 HTML 内容。npx @11ty/eleventy
命令来生成静态网站。_site
目录。你可以使用任何静态服务器来查看生成的网站。.eleventy.js
).eleventy.js
文件是 Eleventy 的核心配置文件。你可以在这个文件中配置 Eleventy 的各种选项,例如:
以下是一些常用的 .eleventy.js
配置选项:
module.exports = function(eleventyConfig) { // 设置输入目录 eleventyConfig.addPassthroughCopy("static"); // 设置输出目录 return { dir: { input: ".", output: "_site" } };};
在上面的例子中,我们将输入目录设置为当前目录 (.
),将输出目录设置为 _site
。 eleventyConfig.addPassthroughCopy("static");
这行代码将 static 文件夹中的所有文件复制到输出目录,不会进行任何转换处理。
Eleventy 支持多种模板语言,包括:
你可以根据自己的喜好和项目需求选择合适的模板语言。 Eleventy 会自动检测文件的扩展名,并使用相应的模板引擎进行处理。
以下是一个使用 Liquid 模板语言的示例:
<!DOCTYPE html><html><head> <title>{{ title }}</title></head><body> <h1>{{ title }}</h1> <p>{{ content }}</p></body></html>
在这个例子中,{{ title }}
和 {{ content }}
是 Liquid 变量,它们会在生成网站时被替换为实际的值。
Eleventy 支持从多种数据源导入数据,包括:
你可以将数据存储在单独的文件中,然后在模板中使用这些数据。 这使得你可以轻松地管理和更新网站的内容。
假设你有一个名为 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 插件:
@11ty/eleventy-plugin-syntaxhighlight
:用于代码高亮。eleventy-plugin-html-minifier
:用于压缩 HTML 文件。@11ty/eleventy-plugin-rss
:用于生成 RSS 订阅。要使用插件,你需要在 .eleventy.js
文件中注册它:
const syntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight");module.exports = function(eleventyConfig) { eleventyConfig.addPlugin(syntaxHighlight); return { dir: { input: ".", output: "_site" } };};
以下是一些使用 Eleventy 的最佳实践:
以下表格对比了 Eleventy 与其他流行的静态站点生成器:
特征 | Eleventy | Jekyll | Gatsby | Hugo |
---|---|---|---|---|
编程语言 | JavaScript | Ruby | JavaScript (React) | Go |
易用性 | 高 | 中 | 中 | 中 |
灵活性 | 高 | 中 | 低 | 高 |
性能 | 高 | 中 | 高 | 非常高 |
生态系统 | 中 | 高 | 非常高 | 高 |
以下是一些有用的 Eleventy 资源:
希望本文能够帮助你了解和使用 Eleventy。祝你使用 Eleventy 构建出色的静态网站!想要了解更多关于静态站点生成器的信息,欢迎访问我们的网站。