1.はじめに
Hexo + NexTに問い合わせたところ、それがないとどうしようもないことがわかりました。私が能力を持っている場合、それを再構成して、よりパーソナライズし、ソフトウェアのニーズを最大限に満たす必要があります。ローカルで何かを書けば、最も恐れられていることは、コンピューターを変更してブログを再構築することです。そのため、バックアップは特に重要です。ブログのバックアップはこのブログ投稿の主な目的であり、この城をキャプチャする必要があります。
GexoがHexoブログのソースファイルをバックアップする方法を見てきました。この方法ではHexoブログのソースファイルをバックアップできますが、私のような怠惰な人にとっては、ブログ投稿を更新するたびに、2行または3行のGitコマンドを繰り返す必要があります。面倒なこと。さらに、ある日、githubにプッシュするのを忘れたかもしれません。あなたはそう言ったので、この記事が現れました...
第二に、原則
Hexoのイベントを監視して、自動バックアップ用のGitコマンドの自動実行を完了するには、Hexoのドキュメントを参照し、Hexoの主なイベントを見つけます。次の表を参照してください。
イベント名 | イベント時間 |
---|---|
deployBefore | 展開が完了する前に公開する |
deployAfter | 導入成功後に投稿 |
出口 | Hexoの終了前に公開 |
generateBefore | 静的ファイル生成前に公開 |
generateAfter | 静的ファイルの生成後に公開する |
新着 | 記事ファイル作成後に投稿 |
したがってdeployAfter
、Hexoのイベントを監視し、アップロードの完了後に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でホストできることをとても嬉しく思います。