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)