Post

コメントシステムを Disqus から giscus に変更した

ブログ開設当初から Disqus を利用していたが、このたび giscus に移行したのでそのことについてお知らせするとともに移行した背景について語る。

コメントシステムを Disqus から giscus に変更した

変遷

このブログは Ghost という CMS から始まり、のちに Jekyll (GitHub Pages) に移行したGhost でブログを開設したわりと早い段階からコメントシステムとして Disqus を導入していた。WordPress のようなオールインワン CMS ではコメント機能も内蔵されているが、Ghost はその当時はまだ新参者でバージョンも 0 系だったのでコメント機能が実装されていなかった1

そして GitHub Pages は静的サイトホスティングサービスなのでコメント機能を内部に実装することは当然出来ない。だから、Ghost と同じく Disqus のようなコメントシステムが必要だったためそのまま引き継いだ。まあ引き継いだと言っても、Jekyll に移行してからは特に更新頻度がめっきり減ってしまったので長らく Jekyll には導入しておらず、最近になってまたブログを更新する機運が高まってきたので導入し直した、と言ったほうが正確だ。

しかし、今回、ブログを一新した一環で、コメントシステムも Disqus から giscus に移行することになった。すでに導入済みで、この記事の下部からもリアクションやコメントを閲覧・投稿することができる。

コメント欄

きっかけ

きっかけは テーマ(デザイン)を Chirpy に移行したこと だ。デフォルトでサポートしているコメントシステムはテーマによって異なり、以前使用していた Minima ではおそらく Disqus しかサポートされていなかったと思う。まあ別にテーマが該当のコメントシステムをサポートしていなかったとしてもスクリプトタグを自分で埋め込めばどのテーマでも使用できるのだが、Chirpy が giscus を正式にサポートしているのを受けて、調べてみて良さそうだと思い導入に至った。実は前からこのコメントシステムを導入したウェブサイト(主にブログ)を見かけたことはあったが、それが giscus であることは今回はじめて知った。

Chirpy では Disqus に加え utterances と giscus をサポートしており、この giscus というのが今回導入したコメントシステムで、GitHub Discussions を使用してコメントを管理する仕組みとなっている。ちなみに utterances は GitHub Issues を使用する仕組みになっており、giscus もこれをインスパイアしているらしい。giscus のほうが後発ではあるが開発が活発で人気があり、GitHub Discussions のほうがカテゴリを分けて管理できるなどカスタマイズ性もあるかなと判断し、giscus を採用するに至った。

まあ Disqus もサポートしているのでそのまま Disqus を使用するのでもよかったのだが、やはり自分自身が GitHub のエコシステムにどっぷり浸かっているということもあって、コメント含めすべてが GitHub 上のサービスで一元管理できる魅力には叶わなかった。giscus でコメントを残すには当然 GitHub アカウントが必要になるので、エンジニアではない人に対しては少々負担がある決断だったかもしれない。なぜならエンジニアじゃない人は GitHub を使用する機会はほとんどないと考えられるのでアカウントを持っていないだろうし、エンジニアという枠を除けば一般的に使われているのはやはり Disqus だと思う。

コメントを残すためだけに GitHub のアカウントを作るというのは心理的な負担がある人もいるだろうから、間口としては狭くなってしまうのではないかなという懸念は実際にある。それに、このブログはすべての記事がエンジニア向けというわけではないし、実際、オンライン英会話の先生たちにも共有しようと考えている。それを考えたら Disqus のほうがフレンドリーな気はしたが、それでもやはりコメントを GitHub で管理できるという魅力には勝てなかった。まあこのへんは自分のブログだし自己満足でいいかなとも思っている。

Out of the box

この記事を書く前に実はもうすでに導入は完了していて、動作確認として仮でこの記事をいったん空で投稿し、テストコメントしてみた。問題なく動いていることが確認できた。

導入に関しては非常に簡単だった。GitHub というサービス自体の使い方に慣れているのであれば、もはやエンジニアじゃなくても簡単に導入できるくらいだ。”out of the box” とはまさにこのことを言うのだろう。複雑な設定が必要なくすぐに使える設計思想は個人的に非常に好みなのでそこも嬉しいポイントだ。

導入方法については giscusを用いてHugoにコメントシステムを導入する | Konsome Engineering を参考にしたが、正直 導入ページ の説明だけでも十分な気がする。先述の解説記事では GitHub Discussions のカテゴリを Open-ended discussion にする、としているが、ここは Announcement のほうが良いと思う。なぜなら Open-ended discussion だと誰でも discussion を作成できてしまうので汚れてしまう危険性がある。Announcement だと maintainers か admins しか作成できないのでこちらのほうが安全だろう。実際、giscus の導入ページでも Announcement を使用することが推奨されている。

上記記事では Hugo というまた別の静的サイトジェネレーターを使用しているが、基本的に導入方法は Jekyll と同じだ。テーマが giscus をサポートしているならその方法に従って設定することができるし、サポートしていなくても導入ページで生成されたスクリプトタグを記事の下部に配置されるように埋め込めばいい。Chirpy を使用している場合は このように _config.yml を書き換える ことで簡単に導入することができる。もちろん ID 等は個人の環境にあわせて変更する必要がある。

リポジトリ名の選定に立ち往生

導入自体は 1 時間もあればできると思うのだが、今回導入を決意してから実際に導入するまでに 1 週間弱ほど時間を要した。その理由は新しく作成するリポジトリの名前を考えていたからだ。

当初は、というかまだ giscus の仕組みがよくわかっていなかった段階では、ブログ用のリポジトリ にこれを導入すればいいと考えていた。しかし今後、技術記事などにも同様に導入する際に、そちらにも導入する必要がある。もちろんそれでもいいのだが、コメントを管理するリポジトリを別で作成して、そこにブログも技術記事も giscus を導入したサイトのコメントを一元管理したほうがすっきりするのではないかと思った。実際これは先ほどの解説記事にも書かれていることだ。

そうなると新しくリポジトリを作成する必要があるが、どんなリポジトリ名がいいかと考えていたらなかなか決まらず、結局 1 週間弱かかってしまった。その間ずっとそのことを考えていた。完璧主義というか優柔不断というか、こういう細かいところで即断即決できないのが自分の弱点なのだが、今後長くその名前を使っていくことを考えると適当には決めたくないという気持ちがあった。

命名候補

いろんな候補があった。有力だったところでいうと

  • rapport
  • affinity
  • echo
  • chamber
  • threads
  • agora
  • whisper

が候補として上がった。

rapport には 好みや感じ方などが一致しているという関係 というニュアンスがあるらしいし、信頼関係という意味もある。コメントは討論の場ではなくこのブログを続けていくうえでのささやかな原動力のもとであってほしいので、応援コメントや見てますコメントが来たらいいなという気持ちを込めて、rapport は悪くないのかなと思っていた。実際、中盤くらいまではかなり自分の中での推し候補だった。だけどコメントを管理している場所っていう観点でいうとちょっと抽象的すぎるかなと思ったのでこれは最終的には却下した。affinity も同様の理由だ。

次に echo だが、自分の作ったものが世の中に影響を及ぼすことを日本語で「反響がある」と表現するので、反響を意味する英語である echo はかなりいいんじゃないかなと思っていた。それに 賛成の意見を表明する という意味があるのもコメント管理プロジェクトとの相性もいいと思った。今回名前を選定するにあたり ChatGPT や Gemini の力を借りた が、両者とも初期の段階から候補に出しており、後半までかなり有力だった。

しかし、オンライン英会話の先生(アメリカ人ネイティブ)に聞いてみたところ、日本語の「反響がある」という文脈で echo を使うことはあまり一般的ではないそうだ。ChatGPT や Gemini はこの意味で echo は辞書的に載っていると解説していたが、自分で調べても本当にそういう意味で使うのかちょっと確証が得られなかったし、なによりネイティブがあまり一般的ではないというなら、ちょっと選びづらいかなという意見に傾いてしまった。

それにそういう文脈でいうと echo chamber (エコーチェンバー現象) を連想することがあるのであまりポジティブな印象にはならないというのは彼女も ChatGPT も言及していた。なので最終的には選ばなかった。chamber に関しても、それ単体なら会議室とか特定の空間という意味で使えるのでいいのではないかと一瞬候補に上がっていたが、同様の理由で却下した。

その他、ChatGPT が出した候補の中で threadsagora というのものもあってこれも悪くはないんだけど、threads だとメタ社が運営している SNS と被る2し、agora はコメント管理プロジェクトの名前として使うことを想定すると、ちょっと討論っぽい印象も持ってしまうかなと思ったので不採用となった。

whisper に関してはそれ自体は悪くはないかなと思ったけどすでに 使用済み なので早々に却下した。

ネイティブの先生にさらに深堀りして聞いてみたところ、日本語でいう「反響がある」は英語だと “ripples in a pond” というらしい。直訳すると「池に広がるさざ波・波紋」となり、ブログなどのコンテンツを石に見立てたとき、その石を池に投じて水面に波紋が広がっていく様子が、まさに日本語の反響があるという状況を表しているのだそう。ただ、日本語でも「波紋を呼ぶ」という表現があるがこれはネガティブな場面で使われる印象のほうがどちらかというと強いし、ripple は仮想通貨の名前にもなっているし、なんかあんまりしっくりとこなかった。実際、ChatGPT も初期の段階でこの単語をおすすめしてきたが、そのときもあまりピンと来ていなかった。

じゃあ何がいいんだろうなとまた振り出しに戻ってしまい、これまでの ChatGPT のやり取り(出してきた候補)を先生にも共有し、この中だったらどれがいい? と問うてみた。そしたら vox がいいのではないかという意見が返ってきた。実際には vox というのは ChatGPT の候補には入ってなくて、voxa という造語があったのでここから候補を出してくれたのだと思う。vox というのは英語ではなくラテン語で、voice という意味らしい。実際には英語でも vox pops という使われ方をするらしく、”voice of the people” の意らしいが、いわゆる「街頭インタビュー」のことらしい。

たしかに辞書で引いたときに voice は「声」という意味のほかに「意見」という意味もある。日本語でも「ユーザーズボイス」みたいな使い方をすることがある、あれだ。だから、コメントという概念とも合っているなと思った。それに voice だとちょっと味気ない気もするが、vox ならラテン語だからなんかちょっとおしゃれな雰囲気もあるし、プロジェクト名(リポジトリ名)としてもいい感じなんじゃないかと思った。

これだったらネイティブ的にもコメントのプロジェクト名として使うのにぴったりだということだった。そこからさらに一晩おいて考えて、最終的に vox を採用することにした。

noraworld/vox: Thank you for making your vox heard! 😉

Thank you for making your vox heard! 😉

は、今回の件で意見をくれてありがとうと最後にお礼を言う際に使用した洒落だ。個人的で細かい悩み事に付き合ってくれて感謝 🙏

リポジトリ名が決まり、これにてようやく導入することができた。リポジトリを作成してから導入するまでは早かった。

ブログ一新計画はひとまず完了

今回のブログ一新計画で実現したいことは一通り対応できた。ブログのデザインを一新して英語版記事をサポートした で書いた、過去記事の自動翻訳対応、サムネイル表示の修正、過去記事の見出し(ヘッドライン)の修正、日本語のタグを英語に変更はすべて対応したし、コメントシステムの導入も今回対応した。

なのでここからはブログ記事を書くことに専念したいと思う。最近は人と交流することも増えてきていろんなところに行ったり新しいことを経験したりしているのでそのことをブログに残していきたい。現段階でもいくつかネタはあるが、先にこっちを対応していたこともありまだ書けていないという状況だった。ようやくそれが一段落して執筆できる準備が整ったのが嬉しい。

リアクション求む

それから、オンライン英会話の先生たちにもこのブログを共有する準備が整ったのでこれから共有していこうと思う。もしみんなが定期的に覗きに来てくれるなら、英語(自動翻訳)に対応した甲斐もあるというものだ。

もちろんこれを日本語で読んでいる人にも楽しんでもらえたのなら幸いだ。基本的には自分が書きたいことを書きたいように書くだけなので、他の人が役に立つことを常に念頭に置いて執筆しているわけではないのだが、そうやってみんな自己表現を控えていった結果、本当はどこかの誰かにとって価値があるようなことでも共有されずに通り過ぎてしまったりする。それはもったいないので、自分を表現して発信することは大事だという信念に基づいてこれからもこのブログに限らず様々なところで執筆を続けていくことにする。

とはいえまったく誰にも見られなかったりその反応が得られないのは悲しいので、リアクション(候補の中から絵文字をつける)だけでもいいので反応をくれると続ける励みになる。まあ GitHub のアカウントが必要になるので非エンジニアの人にアカウントを作ってほしいとまでは思わないが、もしすでにアカウントを持っていたり、ここではないなにかのきっかけで作ることがあったりしたらついでにここにもリアクションやコメントを残してくれたら幸いだ。GitHub アカウントにログインした状態で Sign in with GitHub ボタンを押すと giscus アプリからの連携確認画面が表示されるので、承認すればこのブログにコメントすることができるようになるはずだ。

  1. 今では実装されているのかな? Jekyll に移行して以来は全然アップデートを追わなくなってしまったのでその後どのように進化したのかは調べていない。 ↩︎

  2. まあ echoGo のフレームワーク と被るよなということはちょっと思っていた。 ↩︎

This post is licensed under CC BY 4.0 by the author.