本文では、Hexo で特定のカテゴリの記事を呼び出す方法について説明します。
本文で解決する問題#
https://www.zhihu.com/question/404351568
https://segmentfault.com/q/1010000017758828
前書き#
公式のヘルパー関数 list_categories は全く使えないので、自分で変数 categories を使用するしかありません。
Node.js を学んでいないので、適当に試行錯誤するしかありません。
まず、console.log () を使用して site.categories.data を確認しました。その内容は次のとおりです。
試行錯誤の結果、このオブジェクトは map () を使用して呼び出されます。
目次のタイトルを出力する#
<% site.categories.map(function(category){ %>
<h1><%= category.name %></h1>
<% }) %>
記事のタイトルを出力する#
<% site.categories.map(function(category){ %>
<h1><%= category.name %></h1>
<% category.posts.map(function(post){ %>
<h2><%= post.title %></h2>
<% }) %>
<% }) %>
変数 | 説明 | タイプ |
---|---|---|
post.title | ページのタイトル | string |
post.date | ページの作成日時 | Moment.js オブジェクト |
post.updated | ページの更新日時 | Moment.js オブジェクト |
post.comments | コメントが有効かどうか | boolean |
post.layout | レイアウト名 | string |
post.content | ページの完全な内容 | string |
post.excerpt | ページの抜粋 | string |
post.more | 抜粋以外の残りの内容 | string |
post.source | ページの元のパス | string |
post.full_source | ページの完全な元のパス | string |
post.path | ページの URL(ルートパスを含まない)。通常、テーマで url_for(post.path) を使用します。 | string |
post.permalink | ページの完全な URL | string |
post.prev | 前のページ。最初のページの場合は null です。 | string または null |
post.next | 次のページ。最後のページの場合は null です。 | string または null |
post.raw | 記事の元の内容 | ??? |
post.photos | 記事の写真(アルバム用) | array |
post.link | 記事の外部リンク(記事へのリンク用) | string |