PowerShellでHugoの新規投稿を自動生成する方法

プログラミング

はじめに

Hugoを利用して静的サイトを運営していると、新規記事の作成時に日付やファイル名の設定に手間取ることがある。特に記事を頻繁に投稿する場合、この作業が負担に感じることも多い。
そのような場合に、PowerShellを活用することで記事作成の手間を省くことが可能だ。本記事では、Hugoの新規投稿ファイルを自動生成する方法を解説する。手動作業を効率化し、執筆に集中できる環境を構築しよう。


必要な環境

以下のツールが必要になる。事前にインストールしておこう。

ツール バージョン 備考
Hugo 最新版 公式サイトよりダウンロード
Windows PowerShell 5.1以上 Windowsに標準搭載

Hugoのインストール手順

  1. 公式サイトからHugoをダウンロードする。
  2. ダウンロードしたファイルを解凍し、実行可能ファイルをシステムの環境変数Pathに追加する。
  3. 以下のコマンドをPowerShellで実行し、インストールが成功しているか確認する:
    hugo version

    問題なくインストールされていれば、Hugoのバージョン情報が表示される。


自動生成スクリプトの準備

以下はHugoで新規投稿ファイルを自動生成するPowerShellスクリプトの例だ。

サンプルスクリプト

# プロジェクトディレクトリに移動
cd C:\Users\YourUserName\Documents\HugoProject

# システム日付をフォーマットして取得
$datePrefix = (Get-Date -Format "yyyy-MM-dd-")

# 記事のタイトル(必要に応じて変更)
$title = "NewArticle.md"

# フォーマット済みファイル名を作成
$fileName = "$datePrefix$title"

# Hugo new コマンドで投稿を作成
hugo new "posts/$fileName"

スクリプトの詳細

  1. プロジェクトディレクトリの指定
    Hugoのルートディレクトリに移動する。

    cd C:\Users\YourUserName\Documents\HugoProject

    自分のHugoプロジェクトのパスに合わせて修正すること。

  2. 日付フォーマットの生成
    PowerShellのGet-Dateコマンドを使用し、現在の日付をYYYY-MM-DD-形式に変換する。

    $datePrefix = (Get-Date -Format "yyyy-MM-dd-")
  3. ファイル名の構築
    フォーマット済みの日付と記事タイトルを組み合わせて投稿ファイル名を作成する。

    $fileName = "$datePrefix$title"
  4. Hugoの投稿作成コマンドの実行
    Hugoのnewコマンドを使い、指定したディレクトリに投稿ファイルを生成する。

    hugo new "posts/$fileName"

実行例

スクリプトをPowerShellで実行すると、以下のような投稿ファイルが生成される:

content/posts/2024-11-28-NewArticle.md

生成されたファイルに記事の内容を追加するだけで公開の準備が整う。


トラブルシューティング

1. Hugoコマンドが見つからない

原因
Hugoが正しくインストールされていないか、環境変数の設定が不足している可能性がある。

解決策

  • Hugoを再インストールする。
  • PowerShellで以下のコマンドを実行し、環境変数にHugoのパスが含まれているか確認する:
    $env:Path

2. スクリプトが実行できない

原因
PowerShellの実行ポリシーが制限されている可能性がある。

解決策
一時的に実行ポリシーを変更する。

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

これにより、現在のセッション内でスクリプトの実行が許可される。


まとめ

Hugoでの新規投稿作成をPowerShellで自動化する方法を紹介した。このスクリプトを活用することで、日付やファイル名の設定を簡略化し、効率的な作業環境を実現できる。手間を減らし、記事の内容に集中できる環境を整えよう。

ぜひ、自身のプロジェクトで試してみてほしい。

コメント