github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/text/template/helper.go (about)

     1  // Copyright 2011 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Helper functions to make constructing templates easier.
     6  
     7  package template
     8  
     9  import (
    10  	"github.com/shogo82148/std/io/fs"
    11  )
    12  
    13  // Mustは、(*Template, error)を返す関数への呼び出しをラップし、
    14  // エラーが非nilの場合にパニックを起こすヘルパーです。これは変数の
    15  // 初期化などで使用することを意図しています。
    16  //
    17  //	var t = template.Must(template.New("name").Parse("text"))
    18  func Must(t *Template, err error) *Template
    19  
    20  // ParseFilesは新しい [Template] を作成し、指定されたファイルからテンプレート定義を解析します。
    21  // 返されるテンプレートの名前は、最初のファイルのベース名と解析された内容を持つことになります。
    22  // ファイルは少なくとも1つ必要です。
    23  // エラーが発生した場合、解析は停止し、返される*Templateはnilになります。
    24  //
    25  // 異なるディレクトリにある同名の複数のファイルを解析するとき、
    26  // 最後に指定されたものが結果となります。
    27  // 例えば、ParseFiles("a/foo", "b/foo")は "b/foo" を "foo" という名前のテンプレートとして保存し、
    28  // "a/foo" は利用できません。
    29  func ParseFiles(filenames ...string) (*Template, error)
    30  
    31  // ParseFilesは指定されたファイルを解析し、結果となるテンプレートを
    32  // tと関連付けます。エラーが発生した場合、解析は停止し、返されるテンプレートはnilになります。
    33  // それ以外の場合はtです。ファイルは少なくとも1つ必要です。
    34  // ParseFilesによって作成されたテンプレートは、引数のファイルのベース名によって名付けられるため、
    35  // tは通常、ファイルの(ベース)名の1つを持つべきです。そうでない場合、tの
    36  // 内容によっては、t.Executeが失敗する可能性があります。その場合は、
    37  // t.ExecuteTemplateを使用して有効なテンプレートを実行します。
    38  //
    39  // 異なるディレクトリにある同名の複数のファイルを解析するとき、
    40  // 最後に指定されたものが結果となります。
    41  func (t *Template) ParseFiles(filenames ...string) (*Template, error)
    42  
    43  // ParseGlobは新しい [Template] を作成し、パターンによって識別された
    44  // ファイルからテンプレート定義を解析します。ファイルはfilepath.Matchの
    45  // セマンティクスに従ってマッチし、パターンは少なくとも1つのファイルと
    46  // マッチしなければなりません。返されるテンプレートは、パターンによって
    47  // マッチした最初のファイルの(ベース)名と(解析された)内容を持つことになります。
    48  // ParseGlobは、パターンによってマッチしたファイルのリストで [ParseFiles] を
    49  // 呼び出すのと同等です。
    50  //
    51  // 異なるディレクトリにある同名の複数のファイルを解析するとき、
    52  // 最後に指定されたものが結果となります。
    53  func ParseGlob(pattern string) (*Template, error)
    54  
    55  // ParseGlobは、パターンによって識別されたファイルのテンプレート定義を解析し、
    56  // 結果となるテンプレートをtと関連付けます。ファイルはfilepath.Matchの
    57  // セマンティクスに従ってマッチし、パターンは少なくとも1つのファイルと
    58  // マッチしなければなりません。ParseGlobは、パターンによってマッチした
    59  // ファイルのリストでt.ParseFilesを呼び出すのと同等です。
    60  //
    61  // 異なるディレクトリにある同名の複数のファイルを解析するとき、
    62  // 最後に指定されたものが結果となります。
    63  func (t *Template) ParseGlob(pattern string) (*Template, error)
    64  
    65  // ParseFSは、[Template.ParseFiles] や [Template.ParseGlob] と似ていますが、ホストオペレーティングシステムの
    66  // ファイルシステムの代わりにファイルシステムfsysから読み取ります。
    67  // それはグロブパターンのリストを受け入れます。
    68  // (ほとんどのファイル名は、自分自身のみにマッチするグロブパターンとして機能します。)
    69  func ParseFS(fsys fs.FS, patterns ...string) (*Template, error)
    70  
    71  // ParseFSは、[Template.ParseFiles] や [Template.ParseGlob] と似ていますが、ホストオペレーティングシステムの
    72  // ファイルシステムの代わりにファイルシステムfsysから読み取ります。
    73  // それはグロブパターンのリストを受け入れます。
    74  // (ほとんどのファイル名は、自分自身のみにマッチするグロブパターンとして機能します。)
    75  func (t *Template) ParseFS(fsys fs.FS, patterns ...string) (*Template, error)