Hugoの仕様?disqusの仕様?個人的にちょっと納得行かない挙動
不思議な挙動
現在私はHugoにて静的ページを生成しており、NetlifyにてWEBの運営を行っています。
そんな中でふと気がついた挙動でこれは個別に見ると正しいけど、統合して見ると嫌だなぁと思ったことがありました。
本ブログのテンプレートはHugo Future Imperfectというものを使用しております。
これを好き勝手に自分の好きに変更してGithubにて更新を行っているわけです。
このテンプレートでは、記事と個別ページと固定ページの状態が前に使っていたWordPressに近いのです。
これにより、とっつきやすく感じたので使っています。
そこでdisqusというコメントを表示する機能がついています。
テンプレートを見たところHugoのデフォルトのテンプレートを参照してコメント部分を作成していることがわかったのですが、ある挙動が気になりました。
トップページにてコメントの投稿が行えるのです。
これだけでは特に違和感がありません。
試しに、テストとコメントをしてみたのです。
一つ前の記事に移動し、再度このページに戻ってきました。
コメントが消えているのです。
あれ!?と思いトップページを開き直すとコメントが有りました。
ここで気が付きます。
コメント部はURLに依存しているのでは?
試しに個別記事に飛び、コメントを行い、トップページに移動します。
当然のように、コメントは表示されません。
これでは最新の記事にコメントが付くのではなく、トップページにコメントが蓄積していきます。
これはブログという側面でみると欠陥です。
なので頑張って対応を考えて実施してみました。
対応案
- トップページとブログページでテンプレートを分ける。
- Hugoのデフォルトのテンプレートを用いているので、それをやめ、手動で設置します。(disqusにはどこの投稿かを判別するための機能があります。)
- トップページと個別ページをif文で分ける。
上記の3つのうち、今回はテンプレートを分けることで対応しました。
シンプルさはなくなるがテンプレートは他人のだし普段触らないので手っ取り早く対応しました。
方法
postにあった、content-single.html
をコピーしてtop-content-single.html
を作成します。
top-content-single.html
にあった、コメント部分を削除します。
layouts直下にあるindex.html
を開いてcontent-single
をtop-content-single
に書き換えます。
これで終了
これによりトップページでコメントが表示されず、個別ページをいちいち表示してコメントを入力という流れになります。
めんどくさいですね。
でも、コメント2重保持よりかはマシかなと思います。
以上。