Grav Bootstrap4 テーマのカスタマイズ。
概要(Summary)関連の処理がかゆいところに手が届かないので変更。
かゆいところ:ページオプションでサマリーを無効にしても「Continue Reading...」のリンクが出ちゃう。
テンプレートの該当箇所。
File:/grav/user/theme/bootstrap4/templates/partials/blog_item.html.twig
~~~
{% elseif truncate %}
{% if page.summary != page.content %}
<p>{{ page.content|truncate(550) }}</p>
{% else %}
<p>{{ page.content|raw }}</p>
{% endif %}
<p><a href="{{ page.url }}">Continue Reading...</a></p>
{% else %}
~~~
truncate 変数は呼び出し元のファイル
/grav/user/theme/bootstrap4/templates/blog.html.twig 内で呼び出し時に固定値で指定されている。規定値は「true」。
これを「false」にしたところ「Continue Reading...」は消えたけど、前ページ、次ページのリンクが出てきてしまう上に、概要が無視されてコンテンツが長くても(サマリー表示でも)「Continue Reading...」が出なくなった。
うーむ、かゆいところに手が届かない(´・ω・`)。
こうしてみた。
File:/grav/user/theme/bootstrap4/templates/partials/blog_item.html.twig
~~~
{% elseif truncate %}
{% if page.summary != page.content %}
<p>{{ page.content|truncate(550) }}</p>
{% else %}
<p>{{ page.content|raw }}</p>
{% endif %}
{% if page.summary.enabled %}
{# page.summary.enabled はページオプションでsummaryの有効無効を切り替えるとページデータに追加される。#}
<p><a href="{{ page.url }}">Continue Reading...</a></p>
{% endif %}
{% else %}
~~~
これで一応希望の動きにはなっている。
記事の文字数が少なすぎて「Continue Reading...」が出ない(全文表示になる)場合は、記事の中間に概要デミリタ「===」を配置すれば強制的に概要表示になり「Continue Reading...」が表示される。
カテゴリ分けした記事の先頭に目次を配置したのが、事の始まり。
目次なので概要にならずに全文表示したいけど、全文表示なのに「Continue Reading...」がでるのはちとかっこわるいなーと。
やってしまった後であれだけど、そこまでこだわることでもなかった気もする(´・ω・`)