決定は私の Github Pages を放置することはできません。技術的な記事を掲載することはできますし、将来同じ問題に遭遇した場合に解決策をすぐに見つけるためのノートとしても便利です。
グループの中で Gridea を静的なブログとして使用することを勧められたので、調べてクライアントをダウンロードしました。確かに非常にシンプルで、記事の作成も簡単で、テーマも満足できるものでしたので、早速 Github Page に接続する方法を試してみました。
リモート接続と同期#
設定の一部は公式ウェブサイトに対応するチュートリアルがあるため、ここでは省略します。すべての情報を入力した後、リモート接続ができないと表示されました。リポジトリ名やユーザ名を確認しても、トークンを変更しても効果がありませんでした。さまざまな検索の結果、私は Edit→開発者ツール→コンソールを開き、エラーコードが「spawn git ENOENT ... at Process.ChildProces...ickCallbak」と表示されることに気づきました。解決策は、環境変数の Path 項目を編集し、2 つの新しい項目を作成することです。それぞれ、コンピュータにインストールされている Git の bin ディレクトリと git-core ディレクトリを含める必要があります。以下の図のようになります:
これで設定が完了したら、Gridea クライアントを再起動すると、リモート接続が成功します。
その後、同期に問題が発生し、同期に失敗しました。FAQ を参照するか、作者に連絡して解決してください(ヘルプ画面があるのはありがたいですが、さきほどのリモート接続のエラーは表示されますが、どこを見るべきかの指示はありませんでした)。同様に、「Edit→開発者ツール→コンソール」を開くと、次のような例外が表示されます:
「message」をダブルクリックすると、すべてのエラーメッセージが表示されますので、コピーして貼り付けて確認するだけで(Google 翻訳に貼り付けて理解するのにも便利です)、問題が発生しました。私の場合は、メールがプライベートになっていたため、git コマンドが正しく実行されなかったため、github の設定を変更した後、同期が成功したことが表示されました。
これで、基本的な機能が実現されました。
gitalk コメントシステムの設定#
ブログにコメントシステムを導入したいので、Gitalk というコメントプラグインを選びました。Gridea では、4 つの必須項目を提供するだけで、gitalk コメントをサイトに追加することができます。入力する必要があるのは、Client ID、Client Secret、リポジトリ、および owner の 4 つの部分です。Client ID と Client Secret は OAuth App を申請する必要があります。手順は以下の通りです:
①Github の右上にある自分のアイコンをクリックし、「設定」をクリックします。
②「開発者設定」をクリックし、「OAuth Apps」→「新しい OAuth Apps」をクリックします。
③このページに移動したら、Application name は任意に入力し、Homepage URL には Github Page があるリポジトリのリンク(https://github.com/ ユーザ名 / リポジトリ名... など)を入力します。Application description は空白のままで構いません。Authorization callback URL には、Github Page のドメインを入力します(http と https を区別します)。
④完了したら、Client ID と Client Secret をクライアントにコピーし、リポジトリと owner を入力すると、gitalk コメントプラグインを使用することができます!
Coding Pages を使用する場合#
個人的な経験から言えば、Coding Pages は確かに Github Pages よりも優れています。
登録と設定のプロセスは、公式チュートリアルを参照してください。
gitalk の部分では、OAuth App で変更する必要があるのは 2 つの部分です。1 つは Homepage URL で、適当なリポジトリを作成し、そのアドレスを入力します。もう 1 つは Authorization callback URL で、自分の Coding Pages のドメインを入力する必要があります(http と https を区別します)。そして、Gridea のリポジトリ欄には、OAuth App で使用するリポジトリ名を入力し、owner にはリポジトリを作成した Github アカウントのユーザ名を入力します。