Skip to main content

ローカルファイル テンプレート

Hugo の readDirreadFile 関数を使用すると、プロジェクトのディレクトリ構造を走査して、簡単にファイルの内容をテンプレートに書き込むことができます。

ローカルファイルをトラバースする

Hugo の readDir および readFile テンプレート関数を使用すると、サーバー上の Web サイトのファイルをトラバースできます。

readDir を使用する

readDir 関数 は、 os.FileInfo  の配列を返します。この関数は、ファイルの path を 1 つの文字列の引数として受け取ります。このパスは、Web サイトの任意のディレクトリ (つまり、サーバーのファイルシステムで見つかったもの) にすることができます。

パスが絶対か相対かは重要ではありません。 なぜなら、少なくとも readDir では、Web サイトのルート (通常、 ./public/) が事実上、以下 2 つの両方になるからです。

  1. ファイルシステムのルート
  2. 現在の作業ディレクトリ

readFile を使用する

readfile 関数 は、ディスクからファイルを読み取り、それを文字列に変換して、他の Hugo 関数で操作したり、そのまま追加したりします。 readFile は、パスを含むファイルを、関数に渡される引数として受け取ります。

テンプレートで readFile 関数を使用するには、パスが Hugo プロジェクトのルートディレクトリ からの相対パスであることを以下のように確認します。

{{ readFile "/content/templates/local-file-templates" }}

readFile の例: プロジェクトファイルをコンテンツに追加する

readFile は関数であるため、テンプレートでのみ使用することができ、コンテンツでは使用できません。ただし、 readFile を呼び出し、最初の引数を関数に通し、オプションの 2 番目の引数で Markdown プロセッサーを通してファイルを送信するシンプルな ショートコード テンプレート を作成することが可能です。このショートコードをコンテンツに追加するパターンは以下のようになります。

{{< readfile file="/path/to/local/file.txt" markdown="true" >}}