ローカルファイル テンプレート
Hugo の readDir
と readFile
関数を使用すると、プロジェクトのディレクトリ構造を走査して、簡単にファイルの内容をテンプレートに書き込むことができます。
ローカルファイルをトラバースする
Hugo の readDir
および readFile
テンプレート関数を使用すると、サーバー上の Web サイトのファイルをトラバースできます。
readDir
を使用する
readDir
関数
は、 os.FileInfo
の配列を返します。この関数は、ファイルの path
を 1 つの文字列の引数として受け取ります。このパスは、Web サイトの任意のディレクトリ (つまり、サーバーのファイルシステムで見つかったもの) にすることができます。
パスが絶対か相対かは重要ではありません。 なぜなら、少なくとも readDir
では、Web サイトのルート (通常、 ./public/
) が事実上、以下 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" >}}