Hugoのサマリー機能を理解する。ブログのパフォーマンス改善へ。15:38Hugoのサマリー機能を理解する。ブログのパフォーマンス改善へ。今まで、ブログのトップページは最新の数記事の記事全文を掲載していました。そのため、当然ながら記事内の画像や埋め込みの動画などすべて表示されるので、トップページの表示速度はとても遅くなります。}}を利用しようとしたのですが、とても長いサマリーが出てきてなぜかと困っていました。本記事は、Hugoのサマリー機能(Summary)についての解説と、うまくサマリー機能を利用することでブログのトップページのページスピードをあげることができたのでその紹介をする。Hugoのサマリー機能まずHugoには大きく分けて2つのサマリー機能があります。Hugo-definedとUser-definedの2つです。公式ドキュメントはこちら。https://gohugo.io/content-management/summaries/Hugo-definedこれは、Hugoが自動的にサマリーを作ってくれる機能です。仕様では、はじめの70単語を抜き取って、それをサマリーとしてくれます。デフォルトでは英語のような単語の区切りをスペースで表現する言語を基準としています。そのため日本語の記事をこのサマリー機能にかけると、とんでもないことになるのである。下記は一例だがある記事のサマリー結果です。ISUCON6予選で惨敗した。端的に言って、とても未熟だった。いえ、とてもいい思い出になったのでまとめる。スリーエムというチーム名で、@mogulla3と@mintsu123と一緒に出場した。ぼくはインフラとか総務的な立ち回りをして、2人がチューニングに集中できるようにすることを心がけていた。準備は3週間の間に土日どちらかに集まってISUCONの過去問を解いたり戦略について事前に打ち合わせしてた。出だしはとても順調だった。Azure担当だったぼくはすぐにサーバをデプロイし、OSバージョンを確認した。16.04であったので、準備したとおり必要なミドルウェアのインストールをすませた。定石と言える下記(定形作業と呼んでいた)もすぐにこなすことができた。ここからが本番のチューニング開始である。/が改善ポイントであることは明らかなのはわかっていた。P50.Hugo-definedの日本語対応HugoではhasCJKLanguageというパラメータを用意していて、日本語に対応することができます。ちなみにCJKとは、「Chinese」「Japanese」「Korean」の略のようです。漢字を使う言語を表すときに使うらしい。trueと記載することで長ったらしいサマリーから回避することができます。trueにしたあとのサマリー結果です。ISUCON6予選で惨敗した。falseで長いサマリーを文字数指定でカットすることはできます。300文字でカットしたい場合、テンプレートファイル内で下記のように書くことで分量を調整することは可能です。文章の途中できれてしまい不自然になるため、あまりおすすめはしないです。}}User-defined続いてはUser-definedのサマリー機能について説明します。名前の通りHugoの利用者側でサマリー箇所を決めることができる機能です。サマリーとして区切りたい場所で<!--more-->を入れます。すると、冒頭から<!--more-->までがサマリーとなります。例として下記の文章(markdownファイル)の場合、冒頭の「タイトル通り」から<!--more-->までをサマリーとして扱ってくれるのである。infomation+++タイトルの通り、"英語で"AWSソリューションアーキテクト認定の模擬試験を受けてみたので報告です。練習を兼ねてAWS認定の模擬試験を英語で受けてみた、のである。上で見てきたようにHugoではサマリー機能をいくつかの形式で利用することができますが、日本語環境では個人的にはUser-definedをおすすめします。Hugo-definedではサマリーが短すぎるし、現状の仕様ではサマリーに利用する文字数を自分で調整することはできません。いい文章ではだいたい、冒頭に読みての「掴み」を書くと思うし、<!--more-->を挿入するだけでできるのであればそれがいいと思います。ブログトップページの高速化を図る冒頭に書いたが、もともとブログサイトのトップページは、最新の3記事の全文を表示していました。それゆえにトップページが重く困っていました。書いた記事の内容によって(動画やスライドの埋め込みの多い記事をかくと)ページスピードが変動することになり、良質な記事を書くということと、ページスピードを上げることの両立がはかれていませんでした。そこで、今回User-definedのサマリー機能を導入することで、この問題を解消しました。過去の記事すべてを対応するのは難しいので、直近のものだけとりあえず対応しましたが、それだけでも十分な効果を発揮しています。実際、Googleのページスピードも87点まで改善することができました。(でもまだまだ改善の余地あり)さいごにこのブログでお金を稼いでるわけでもなんでもないが、どうせ書くからには多くの人の役に立ってもらいたいと思っています。そのため、少しずつでもいいブログサイトにしていきたいと思っています。Hugoの知見がまたでてきたら共有していきます。Shopを使ったマイクロサービス体験のハンズオン「捉」2019年振り返り「LeanとDevOpsの科学」を読んで。