Discus コメントを使って Twitter リアクションを表示させる。コメントは抑止の方向で。
最近,Twitter のツイートにブログ記事へのリンクがあるとき,それらのツイートを一覧で表示するサイトを見かけるようになった。多いのは DISQUS コメントシステムである。もともとはコメントの入力と表示を提供する外部システムなのだが,Twitter や FriendFeed その他のソーシャルメディアでのリアクションをサポートするようになったのである。リアクションの収集は,Disqus 自身ではなくパートナー企業の BackType が行っている。
Disqus は Movable Type 用のプラグインを公開してくれているが,残念ながら MT5 対応だと言っている (Twitter / DISQUS: Disqus Comments: Movable T ...)。サポートされている文字コードは UTF-8 である。このブログは MT2 で,しかも EUC-JP なので当然対象外。問題外の外である (それって内?)。
対策が必要なのは以下の点である。
幸いにも,Disqus は一般のシステムで使える「Universal Code」を提供してくれているので,MT の古さにはこれで対応ができる。文字コードはプラグインを書くことにする。WikiにDisqusを組み込む - KamoLand さんのまとめがとても役に立つ。
Disqus がサポートしているのは UTF-8 であるが,表示には,一般に Javascript なサイトで使われる \uXXXX の形式の「Unicode エスケープシーケンス」が使われる (WikiにDisqusを組み込む - KamoLand)。そこで Unicode::Escape Perl モジュールの力を借りて,MT2 用のプラグインを書くことにした。
ファイル名は encode_ues.pl などとしてプラグインディレクトリに保存する。
Shift_JIS や JIS な人も多分大丈夫。MT5 は UTF-8 以外の日本語文字コードをサポートしていないので,そもそも変換する必要がない。
コメントやリアクションを表示するために,ページには Javascript を埋め込む。Movable Type のテンプレートには次のように書く (参考: Ogawa::Buzz: MTに DISQUSを配備するには)。ベースは Disqus 提供の Universal コードで,これに MT のテンプレートタグで情報を追加した形になっている。上記のプラグインは「encode_ues="1"」で有効になる。「short_name」の部分は Disqus アカウントを取得したときのショートネームに書き換える必要がある。
「<div id="disqus_thread"></div>」の部分にコメントやリアクションが動的に挿入される。
HTML の </body> の直前には次のコードを書く。ここも short_name は自分のショートネームに書き換える。
上記のコードは Disqus のコメント表示をさせる際にも有効である。以下での目的は,コメントシステムは MT の自前のものを使い続けて,Twitter などでのリアクションだけを追加することである。したがって,Disqus のコメントとコメント入力欄は表示させたくない。Disqus は CSS のカスタマイズもサポートしているので,これを使って共生的に表示を抑止してしまうことにする。
まず最初にソーシャルメディアリアクションの表示を有効にする。現在 Disqus が対応しているソーシャルメディアは,FriendFeed, Twitter, Digg, Reddit, Hacker News, Blogger, Wordpress, YouTube, Vimeo, Picasa, Flickr, Type Pad, Movable Type, Other services (その他) である。有効にするには,Disqus にログインして「Settings」→「General」で「Reactions」にチェックし,サービスを選んでチェックする。例えば Twitter を選ぶ。
CSS をカスタマイズするには,Firefox に FireBug などを導入するなどして,表示部分の id や class を調べる。Disqus のダッシュボードでは,上述の「General」の画面の1つ上のタブに「Customize」があるのでこれを選択する。利用できるテーマは「Narcissus」のみで,「Lite」は coming soon ということでグレーアウトしている。「Custom CSS」タブを選んで,次のコードを貼り付ける。
コメント関係はすべて「display: none」にしてしまうということだ。試してみたところ,「!important」で優先してやる必要があった。貼付けたら「Save Changes」ボタンをクリックする。Disqus ダッシュボードにはプレビューがついているので CSS の設定の効果を確認することができる。上記の CSS を適用すると,「0 Comments」と「blog comments by DISCUS」の2行のみになる。残念ながら Reactions のプレビューはない。
表示としては次のようになる。リアクションが少ないブログなので困るのだが…。
例えば nlog(n): 間違っていた「ご冥福をお祈り致します」の使い方 では上のように表示される。
Disqus によるリアクション表示の問題点は,すべてのリアクションが表示されないことである。
実例としては,上の nlog(n): 間違っていた「ご冥福をお祈り致します」の使い方 での Disqus の表示と BackType の表示 Conversations ― BackType を比較すると,BackType の方が多くなっているのである。これが Disqus の BackType からのデータの取得に問題があるのか,それとも上記のコードに問題があるのかは今のところ不明。
この記事では Disqus の導入の仕方についてだが,大きく2つの部分に分けられる。ひとつは文字コードが UTF-8 以外になっている Movable Type サイトにおける導入方法。もうひとつは,カスタム CSS を設定して必要な部分だけを表示するというもの。この2つのトピックは別の記事にしたほうがよかったかも知れないな。
コメントシステムを将来的に Disqus にすることを考えに入れて,今回のリアクション表示をしてみたが,若干問題があるので本格導入は見送るかも知れない。
Posted by n at 2010-08-03 21:41 | Edit | Comments (2) | Trackback(0)
Master Archive Index
Total Entry Count: 1957
カスタムCSSは重宝していますが、リアクション箇所のアバターアイコンのサイズが変えられずに奮闘中です。
Posted by: Takao Asayama at October 13, 2010 08:33Takao Asayama さん
Posted by: n at October 13, 2010 13:00アバターアイコンのサイズは
.dsq-header-avatar img
で指定できるみたいですよ。カスタム CSS 設定は例えば次のように。
#dsq-content #dsq-comments .dsq-header-avatar img { height: 48px; width: 48px; }
引用元: http://sites.google.com/site/pressinfosofia/home/disqus