ジェネレータは、処理されたファイルに基づいてルートを構築します。
概要
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"); |