日本語ページにおけるサマリー(記事の要約)の文字数を調整する

メモ:

インデックスページに各記事のサマリー(記事の要約)を表示することがありるのですが、 Hugo ではサマリーを出力するための機能が用意されておりテンプレートに {{ .Summary }} と記述することで対応できます。

この機能はデフォルトで英語などの単語数を対象としており先頭から 70 words 表示するように設計されています。そのため日本語などではカウントが正しく行われず期待していないサマリーが表示されてしまいます。

ここでは、 ほどよい長さのサマリーが出力されるよう hasCJKLanguage (Hugo-defined) を使った方法と <!–more–> (User-defined) を使った方法を確認します。

Hugo-defined

Hugo でデフォルト設定では、日本語のサマリーが長くなってしまうことがあります。日本語の文章を短いサマリーで表示できるようにするには、設定ファイル (config.toml 等) に hasCJKLanguage を追加し true に設定します。

hasCJKLanguage = true

各コンテンツごとに設定を行いたい場合は、 front matter に isCJKLanguage を追加し true に設定します。

+++
date = 2018-07-16T11:36:02+09:00
title = "コンテンツのタイトル"
isCJKLanguage = true
+++

※設定する場所で 「has」 と 「is」 の違いがある事に注意!

User-defined

Hugo でサマリーを調節するもう一つの方法は、利用者側でサマリーとして区切りたい場所に <!–more–> を入れます。その結果、冒頭から <!–more–> までがサマリーとして出力されます。

例として下記の文章(markdownファイル)の場合、冒頭の「タイトル通り」から <!–more–> までをサマリーとして扱ってくれるのである。

+++
date = 2018-07-16T11:36:02+09:00
title = "コンテンツのタイトル"
+++

インデックスページに各記事のサマリー(記事の要約)を表示することがありるのですが、
 Hugo ではサマリーを出力するための機能が用意されておりテンプレートに {{ .Summary }}
と記述することで対応できます。

この機能はデフォルトで英語などの単語数を対象としており先頭から 70 words 表示する
ように設計されています。そのため日本語などではカウントが正しく行われず期待していない
サマリーが表示されてしまいます。ここでは、 ほどよい長さのサマリーが出力されるよう
 hasCJKLanguage (Hugo-defined) を使った方法と <!--more--> (User-defined) を
使った方法を確認します。

<!--more-->

## Hugo-defined
・・・・・