Hexoブログのソースファイルの自動バックアップ

1.はじめに

Hexo + NexTに問い合わせたところ、それがないとどうしようもないことがわかりました。私が能力を持っている場合、それを再構成して、よりパーソナライズし、ソフトウェアのニーズを最大限に満たす必要があります。ローカルで何かを書けば、最も恐れられていることは、コンピューターを変更してブログを再構築することです。そのため、バックアップは特に重要です。ブログのバックアップはこのブログ投稿の主な目的であり、この城をキャプチャする必要があります。
GexoがHexoブログのソースファイルをバックアップする方法を見てきました。この方法ではHexoブログのソースファイルをバックアップできますが、私のような怠惰な人にとっては、ブログ投稿を更新するたびに、2行または3行のGitコマンドを繰り返す必要があります。面倒なこと。さらに、ある日、githubにプッシュするのを忘れたかもしれません。あなたはそう言ったので、この記事が現れました...

第二に、原則

Hexoのイベントを監視して、自動バックアップ用のGitコマンドの自動実行を完了するには、Hexoのドキュメント参照し、Hexoの主なイベントを見つけます。次の表を参照してください。

イベント名 イベント時間
deployBefore 展開が完了する前に公開する
deployAfter 導入成功後に投稿
出口 Hexoの終了前に公開
generateBefore 静的ファイル生成前に公開
generateAfter 静的ファイルの生成後に公開する
新着 記事ファイル作成後に投稿

したがってdeployAfterHexoのイベントを監視し、アップロードの完了後にGitバックアップコマンドを自動的に実行して、自動バックアップの目的を達成できます。

3.実現

1. HexoディレクトリをGitリポジトリに追加します

このスクリプトは、正しく動作する前に、HexoをGitリポジトリーに事前に追加し、GithubまたはGiteeリモートリポジトリーとバインドする必要があります。どうすればよいかわからない場合は、他のブログ記事を参照してください。

2. shelljsモジュールをインストールする

この自動バックアップ機能を実現するには、child_processを再パッケージするNodeJのshelljsモジュールに依存する必要があり、システムコマンドを呼び出す方が便利です。(実際、私は怠惰だからです(╯▽╰))このモジュールをインストールして使用する必要があります。

コマンドに次のコマンドを入力して、shelljsモジュールのインストールを完了します。

npm install --save shelljs

3.自動バックアップスクリプトを作成する

shelljsモジュールがインストールされたらHexoルートscriptsフォルダーに新しいjsファイルを作成しますauto_backup.jsファイル名は自由に取得できます(私のファイル名は:) scriptsディレクトリがない場合は、新規に作成してください。

次に、スクリプトで次のように記述します。

require('shelljs/global');
try {
    hexo.on('deployAfter', function() {//当deploy完成后执行备份
        run();
    });

} catch (e) {
    console.log("产生了一个错误啊<( ̄3 ̄)> !,错误详情为:" + e.toString());
}
function run() {
    if (!which('git')) {
        echo('Sorry, this script requires git');
        exit(1);
    } else {
        echo("======================Auto Backup Begin===========================");
        cd('E:/work/myblog');    //此处修改为Hexo根目录路径
        if (exec('git add --all').code !== 0) {
            echo('Error: Git add failed');
            exit(1);
        }
        if (exec('git commit -am "blog auto backup script\'s commit"').code !== 0) {
            echo('Error: Git commit failed');
            exit(1);
        }
        if (exec('git push origin master').code !== 0) {
            echo('Error: Git push failed');
            exit(1);
        }
        echo("==================Auto Backup Complete============================")
    }
}
  • その中でも、16行目のE:/ work / myblogのパスは、Hexoのルートディレクトリパスに変更する必要があります。(スクリプト内のパスは、ブロガーのヘキソパスです)

  • Gitリモートリポジトリ名がoriginでない場合は、25行目で実行されたpushコマンドをリモートリポジトリ名と対応するブランチ名に変更する必要もあります。

4.テスト結果

スクリプトを保存して終了し、hexo dコマンドを実行します。通常の結果が実行されると、次のような結果が得られます。

これは、アップロードが成功したことを示しています。ブログ投稿が更新されてサーバーにデプロイされるたびに、バックアップが自動的に開始され、バックアップが完了します〜

以下に示すように、githubミラーライブラリをチェックして、必要なものを入手します。

テストは成功しました!

今後、Hexoブログのソースファイルを自動的にバックアップし、Githubでホストできることをとても嬉しく思います。

120件の元の記事を公開 201 件を賞賛 230,000回の閲覧+

おすすめ

転載: blog.csdn.net/wugenqiang/article/details/89206860
おすすめ