生成器根据处理后的原始文件建立路由。
概要
hexo.extend.generator.register(name, function (locals) { |
locals
参数会被传递到此函数,其中包含 网站变量。 请尽量利用此参数取得网站数据,避免直接访问数据库。
更新路由
hexo.extend.generator.register("test", function (locals) { |
属性 | 描述 |
---|---|
path |
路径。 不可包含开头的 / 。 |
data |
数据 |
layout |
布局。 Specify the layouts for rendering. The value can be a string or an array. If it’s ignored then the route will return data directly. |
在原始文件更新时,Hexo 会执行所有生成器并重建路由。 请直接回传数据,不要直接访问路由。
示例
归档页面
在 archives/index.html
建立一归档页面。 把所有文章当作数据传入模板内。 这个数据也就等同于模板中的 page
变量。
Next, set the layout
attribute to render with the theme templates. We’re setting two layouts in this example: if the archive
layout doesn’t exist, the index
layout will be used instead.
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"); |