ジェネレータは、処理されたファイルに基づいてルートを構築します。
概要
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
属性を設定してテーマテンプレートでレンダリングします。この例では2つのレイアウトを設定しています。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){ |
ファイルのコピー
この例ではデータを明示的に返さず、ルートが必要なときにのみfs.ReadStream
を生成する関数をdata
に設定しています。
var fs = require('hexo-fs'); |