通用概念
关于不同类型的文件、插件和扩展。
Lume 的工作方式很简单:它只是读取你的 src 目录中的文件, 处理内容并将最终文件保存到 dest 文件夹中。
这里有不同类型的文件:
页面文件 (Page files)
页面文件 (Page file) 是指被加载、处理并保存到 dest 文件夹的文件,用于生成一个或多个页面。在 Lume 中,页面 (pages) 分为两种不同的类型:
常规页面 (Regular pages)
是指旨在生成 HTML 页面的文件。以 my-page.md 为例:
- 加载文件内容。
- 将输出文件从
/my-page.md更改为/my-page/index.html。 - 运行预处理器 (preprocessors)
- 渲染页面内容和布局 (layouts)
- 运行处理器 (processors)
- 将输出文件保存为
/my-page/index.html。
默认情况下,Lume 将以下格式解释为常规页面文件 (regular page files),因此它们会被加载、处理并导出到 dest 文件夹:.md、.markdown、.vto、.page.json、.page.js、.page.ts 和 .yaml。使用 site.loadPages() 添加额外的扩展名:
// 加载扩展名为 .foo 的页面
// 示例: /my-page.foo => /my-page/index.html
site.loadPages([".foo"]);
资源页面 (Asset pages)
是指旨在输出资源 (assets) 的页面,例如 .css 文件、.js 或图像。它们 与常规页面 (regular pages) 非常相似,但有一些区别。以 my-styles.css 为例:
- 加载文件内容。
- 运行预处理器 (preprocessors)
- 运行处理器 (processors)
- 将输出文件保存为
/my-styles.css。
默认情况下,Lume 不会加载任何资源 (asset)。使用函数 site.loadAssets() 来 配置 Lume 以加载某些扩展名作为页面资源 (page assets)。例如:
// 加载 .css 文件
site.loadAssets([".css"]);
对于需要特殊处理的资源 (assets),例如二进制文件(例如 .webp), 你需要在调用 site.loadAssets() 时指定加载器 (loader)。如果未指定加载器 (loader), Lume 默认使用文本加载器 (text loader)。
// 加载二进制文件
site.loadAssets([".webp"], binaryLoader);
Note
如果你正在使用任何插件 (plugin) 来处理资源 (assets),例如 postcss、esbuild 或 svgo,则不需要运行 site.loadAssets(),因为 插件 (plugin) 会为你执行此操作。
数据文件 (Data files)
数据文件 (Data files) 是指保存为 _data.* 或在 _data/ 目录中的文件, 包含共享给页面文件 (page files) 的数据。以下文件被解释为 数据文件 (data files):_data.yaml、_data.ts、_data.js、_data.json。如果你想 加载其他数据格式,请使用 site.loadData() 函数:
// 加载 .toml 文件
site.loadData([".toml"], tomlLoader);
静态文件 (Static files)
它们是被导出到 dest 文件夹的文件,但不需要被处理,因此 Lume 不会加载 内容,只是复制它们。它们使用 site.copy() 函数按原样复制。 查看更多关于复制的信息。
// 复制 "/static/" 目录中的所有文件
site.copy("static");
// 复制 .pdf 文件
site.copy([".pdf"]);
包含文件 (Includes)
包含文件 (Includes) 是指被页面 (pages) 加载的文件,例如,布局 (layouts) 或模板 (templates)。默认情况下,它们放置在 _includes 文件夹中,但你可以在 配置文件 中配置它。
组件 (Components)
默认情况下保存在 _components 文件夹中,并存储可在模板 (templates) 中使用的可重用代码片段。
插件 (Plugins)
Lume 中的一切都是插件 (plugin)。即使是对核心格式(如 .md、 .yaml、.json 等)的支持也是由一些 默认启用的 插件 提供的。