生成器根据处理后的文件构建路由。
概述
hexo.extend.generator.register(name, function (locals) { |
locals
参数将传递给函数,其中包含 站点变量。您应该使用此参数获取网站数据,从而避免直接访问数据库。
更新路由
hexo.extend.generator.register("test", function (locals) { |
属性 | 描述 |
---|---|
path |
路径,不包括前缀 / 。 |
data |
数据 |
layout |
布局。指定渲染的布局。值可以是字符串或数组。如果忽略,则路由将直接返回 data 。 |
当源文件更新时,Hexo 将执行所有生成器并重建路由。请返回数据,不要直接访问路由器。
示例
归档页
在 archives/index.html
创建一个归档页。我们将所有文章作为数据传递给模板。此数据等效于模板中的 page
变量。
接下来,设置 layout
属性以使用主题模板进行渲染。在本例中,我们设置了两个布局:如果 archive
布局不存在,则将使用 index
布局。
hexo.extend.generator.register("archive", function (locals) { |
带分页的归档页
您可以使用方便的官方工具 hexo-pagination 来轻松构建带分页的归档页。
var pagination = require("hexo-pagination"); |
生成所有文章
遍历 locals.posts
中的所有文章,并为所有文章创建路由。
hexo.extend.generator.register("post", function (locals) { |
复制文件
这次我们没有显式地返回数据,而是将 data
设置为一个函数,以便路由仅在需要时构建 fs.ReadStream
。
var fs = require("hexo-fs"); |