Chiloh

Chiloh Wei

一个尝试理解世界,理解自己的人
jike
twitter

Hexo ブログの投稿時間が更新時間に変わる問題

最近、Travis CI を使用して記事を更新した後、投稿時間が更新時間に変わることに気づきました。この問題について考えた結果、Travis CI の自動デプロイに問題があると仮定しました。なぜなら、自動デプロイ後の時間がデプロイ時の時間と一致しているからです。

仮説の検証#

ステップ 1:従来の hexo g および hexo d メソッドを使用してデプロイする#

デプロイが完了した後、投稿時間と更新時間が変化していることがわかりました。投稿時間は Travis CI の自動デプロイが設定された時間であり、更新時間はこの変更後の従来のデプロイ後の時間です。したがって、問題は Travis CI の自動デプロイにあると確認しました。

ステップ 2:Travis CI の自動デプロイファイルを確認する#

Travis CI の自動デプロイファイル .travis.yml を開いて確認します:

language: node_js
node_js: stable

cache:
  directories:
    - node_modules

before_install:
  - export TZ='Asia/Shanghai' # タイムゾーンを変更
  - npm install hexo-cli -g

install:
  - npm install
  - npm install hexo-deployer-git --save

script:
  - hexo clean
  - hexo generate

after_script:
  - cd ./public
  - git init
  - git config user.name "xuezheng-wei"
  - git config user.email "[email protected]"
  - git add .
  - git commit -m "Travis CI Auto Updated"
  - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master

branches:
  only:
    - hexo
env:
 global:
   - GH_REF: github.com/xuezheng-wei/xuezheng-wei.github.io.git

hexo generate の後に直接 hexo deploy を実行せず、hexo ブランチの public ディレクトリに移動して更新されたファイルを master ブランチに強制的にコミットするため、投稿時間と更新時間を区別できない可能性があります。

ステップ 3:解決策#

  1. .travis.yml ファイルに hexo deploy を追加して自動デプロイ時にこのコマンドを実行できるようにする。ただし、hexo deploy を追加するとアクセスの接続エラーが発生し、トークンの秘密鍵が漏洩するリスクがあるため、処理が複雑になるため、この解決策は採用しません。
  2. 記事を更新する際に、front-matterdate を追加して投稿日を固定する。
  3. Travis CI の自動デプロイをキャンセルし、従来の hexo ghexo d メソッドを使用してアップロードとデプロイを行う。

結論#

Travis CI を使用した Hexo ブログの自動デプロイは、アップロードとデプロイの手順を一部簡略化するものの、hexo cleanhexo ghexo dなどの従来のアップロードとデプロイのコマンドを置き換えるだけであり、効果は限定的です。また、Travis CI の自動デプロイに対する理解が不足しているため、使用に障害がある可能性があります。そのため、元の従来のアップロードとデプロイ手段に戻すことを検討しています。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。