# Hugoブログで最終更新日がすべて同じになっていたのを修正した

4 min read
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では全ファイルに対しフォーマットをかけていたので変更されたファイルのみをフォーマットするように修正した。

新バージョン(上):

Terminal window
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

旧バージョン(下):

Terminal window
prettier --write "**/*.md"

そのほかにも修正してスリム化した。

name: Format Markdown
on:
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)

結果、うまくいった。

My avatar

Thanks for reading my blog post! Feel free to check out my other posts or contact me via the social links in the footer.


More Posts

# WordpressをDockerで起動する

3 min read

個人開発が完了し、やることがなくなったので記事公開時に自動でアイキャッチ画像をアップロードしたい #1 このIssueの解決を試みることにした。

Read

Comments