Jekyllでページ一覧を返すjsonを作成する
Jekyllでページ一覧を返すjsonを生やしたかったので下記のようなものを作成してみました。
Liquidには配列を生成する方法は split
をするしかないようなので表示対象として有効なページパスだけをまずカンマ区切りで文字列にして出力時に split
するようにしています。
pages.json
としてファイルを作成します。
---
permalink: /pages.json
---
{%- assign output = "" -%}
{%- assign page_paths = site.pages | map: "path" -%}
{%- for path in page_paths -%}
{%- assign my_page = site.pages | where: "path", path | first -%}
{%- if my_page.title -%}
{%- assign output = output | append: ',' | append: path -%}
{%- endif -%}
{%- endfor -%}
{%- assign output_page_paths = output | split: ',' -%}
[
{%- for path in output_page_paths -%}
{%- assign my_page = site.pages | where: "path", path | first -%}
{%- if my_page.title -%}
{
"title": "{{ my_page.title | escape }}",
"url": "{{ my_page.url | relative_url }}"
}
{%- if forloop.last == false -%},{%- endif -%}
{%- endif -%}
{%- endfor -%}
]
更新履歴
- 5d67274 2021-12-18T09:57:47+09:00 記事のディレクトリ構造を変更