# Hugoブログで最終更新日がすべて同じになっていたのを修正した
Table of Contents
最終更新日が1分前
記事を更新したのでブログを訪れ適当に記事を読んでいると、すべての最終更新時間が同じことに気が付いた。
どうやら記事のmetaデータにlastmodを入れると最終更新日が更新されるらしいけど、毎回そんなことをしたくない。
Gitを使用する
そこで調べているとGitの情報で取れるらしいという知識を得た。
hugo.tomlで下記設定にする。
enableGitInfo = true [frontmatter] lastmod = ["lastmod", ":git", ":fileModTime",":default"]でビルドしたけど、すべての記事が最終更新1分前で変わらず。
色々調査し、ビルド時にオプション付けるといけるらしいということで実行したけど、最終更新1分前で変わらず。
Gitの情報を見てみる
さすがにおかしいので、昔の.mdのコミット履歴を調べたら1分前だった。
なんでそなことになったのか潰していくと、どうやらGithub Actionでコードフォーマットをしているのだが、それが問題っぽいということに行き当たった。
実際にGithub Actionを消したら無事に、最終更新日がばらけてくれた。
Github Actionを修正する
Github Actionでprettierを実行したいで作成したAction Flowを修正する。
前Action Flowでは全ファイルに対しフォーマットをかけていたので変更されたファイルのみをフォーマットするように修正した。
新バージョン(上):
CHANGED_FILES=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} -- '*.md')if [[ -n "$CHANGED_FILES" ]]; then echo "$CHANGED_FILES" | xargs prettier --writeelse echo "No Markdown files changed. Skipping formatting."fi旧バージョン(下):
prettier --write "**/*.md"そのほかにも修正してスリム化した。
name: Format Markdownon: push: branches: - main
permissions: contents: write
jobs: format: runs-on: ubuntu-latest steps: - name: Check out the repository uses: actions/checkout@v3 with: fetch-depth: 0
- name: Set up Node.js uses: actions/setup-node@v3 with: node-version: "18"
- name: Install Prettier run: | npm install -g prettier
- name: Create .prettierrc run: | echo '{"overrides": [{"files": "*.md", "options": {"proseWrap": "always"}}]}' > .prettierrc
- name: Format only changed Markdown files run: | CHANGED_FILES=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} -- '*.md') if [[ -n "$CHANGED_FILES" ]]; then echo "$CHANGED_FILES" | xargs prettier --write else echo "No Markdown files changed. Skipping formatting." fi
- name: Commit changes run: | git config --global user.name "github-actions[bot]" git config --global user.email "github-actions[bot]@users.noreply.github.com" git add . git diff --cached --quiet || (git commit -m "Format markdown files" && git push origin main)結果、うまくいった。