ブログの記事本文を読むのにかかる目安時間を表示すると読者に親切かも。JavaScriptで作ったので、PHPを使えないサーバーを利用しているウェブサイトやブログに組み込めるよ。このjQueryプラグインを「読了予測時間」と命名。
読了予測時間のデモ画像
読了予測時間が表示されるページ
各記事ページで読了予測時間が表示される。下図で黄色の枠で囲った部分が読了予測時間。PCなら下図をクリックで拡大表示可能。
記事ページとは、はてなブログでいえばURLに/entry/
が入っているページ。たとえば次のURL。
http://hapilaki.hateblo.jp/entry/jquery-plugin-honbun-counter
読了予測時間が表示されないページ
記事ページ以外の記事一覧ページやカテゴリページでは読了予測時間が表示されない。需要があるならアップデートして表示されるようにするかも(ただし、ページの構成によっては無理)。
jQueryプラグイン「読了予測時間」
機能
- 一度導入すれば過去記事や今後作成する記事で読了予測時間の目安が自動で表示される。
- あくまでも目安であり、ブラウザなどの環境が異なると時間に誤差が生じる場合がある。
コード
次のコードははてなブログですぐに使えるようにしたもの。
<script> /* * jQuery plugin dokuryo yosoku jikan v1.0.0 * Date: 2014-09-13 * Copyright (c) 2014 http://hapilaki.hateblo.jp/ * Released under the MIT license: * http://opensource.org/licenses/mit-license.php */ ;$(function(){ var entryContent=$('.entry-content');//カウントしたい部分 var showSecond=1;//秒を表示するなら1、切り捨てなら0 var numCharsPerMinute=600;//一分で読める文字数 var numCharsPerSecond=numCharsPerMinute/60; function calcReadTime(text){ var countChars=text.length; var countSeconds=Math.ceil(countChars/numCharsPerSecond); var result='1分未満'; if(numCharsPerMinute<=countChars){ var calcMinute=Math.floor(countSeconds/60); var calcSecond=countSeconds%60; var withSecond=''; if(showSecond==1){withSecond=('0'+calcSecond).slice(-2)+'秒'} var result=calcMinute+'分'+withSecond; } return result; } var readTime=calcReadTime(entryContent.text()); entryContent.prepend('<p style="text-align:right;" class="reading-time">読了予測:'+readTime+'</p>'); }); </script>
カスタムについて
MIT licenseなので改変OK
MIT licenseで公開する。著作権表示を削除しない限りは好きなように改変していただいてOK。
はてなブログ以外のブログサービスやウェブサイトで使うには、コード内で「カウントしたい部分」とコメントアウトがある行で場所を指定しなおせる。
コメントアウト参照
読了予測時間に秒を表示するか切り捨てるかを選択できる。
初期設定では一分で読める文字数を600にしている。ここを500に減らせば読了予測時間は長くなり、700に増やせば読了予測時間は短くなる。300~800の間が妥当じゃないかな。
構造とデザインの分離
コードの下から三行目にあるstyle="text-align:right;"
を削除し、別途CSSでクラス.reading-time
にスタイルを適用すれば構造とデザインを分離できるよ。
1分あたりの文字数を表示
下から三行目のコードを次のコードに差し替えればOK。
entryContent.prepend('<p style="text-align:right;" class="reading-time">読了予測:'+readTime+'(1分'+numCharsPerMinute+'文字として)</p>');
はてなブログで使うには
まずはチョマテヨを導入
はてなブログはjQuery本体がページ下部で読み込まれる。そのためjQuery本体よりも上に書かれたjQuery記法は有効にならない。それを有効にするために次のプラグインを使う。
ページ下部に追加
jQueryプラグイン「読了予測時間」のコードを追加する場所は次のとおり。
はてなブログ管理画面→デザイン→カスタマイズ(スパナマーク)→記事→記事上下のカスタマイズ→記事下
留意点
筆者の環境では作動しているが、ブログの構成次第で正しく作動しない可能性がある。
当ブログと同じような次の構成なら作動するはず。
- 記事一覧ページでは記事本文が「続きを読む」で省略されている。
- 記事全文を読む場合は各記事ページを開く必要がある。
上記構成以外でも作動したら教えてもらえるとありがたい(^^)
スペシャルサンクス
- 「記事を読む所要時間の目安」を表記しはじめた理由 - operationservicebuの日記 2014-09-12
- はてなブログで「所要時間の目安表記」の自動化を検討してみたが・・・ - operationservicebuの日記 2014-09-13
- 記事の読了に要する時間の表示:jQueryを用いて : はむ吉(のんびり)の雑記帳 2014-05-17
- Seesaaブログに「記事を読むのにかかる時間」をつけてみた: boKUma 2011-10-07
まとめ
読了予測時間を表示すると記事の長さがあらかじめ分かって便利。手動による読了予測時間を記述する手間を省ける。