github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/go/doc/comment/print.go (about)

     1  // Copyright 2022 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  package comment
     6  
     7  // Printerはドキュメントコメントのプリンターです。
     8  // 構造体のフィールドは、印刷の詳細をカスタマイズするために、
     9  // 印刷メソッドのいずれかを呼び出す前に埋めることができます。
    10  type Printer struct {
    11  
    12  	// HeadingLevelはHTMLとMarkdownの見出しに使用されるネストレベルです。
    13  	// HeadingLevelがゼロであれば、デフォルトでレベル3に設定され、<h3>と###が使用されます。
    14  	HeadingLevel int
    15  
    16  	// HeadingIDは、HTMLとMarkdownを生成する際に使用する見出しhの見出しID(アンカータグ)を計算する関数です。HeadingIDが空の文字列を返す場合、見出しIDは省略されます。HeadingIDがnilの場合、h.DefaultIDが使用されます。
    17  	HeadingID func(h *Heading) string
    18  
    19  	// DocLinkURLは、与えられたDocLinkのURLを計算する関数です。
    20  	// DocLinkURLがnilの場合、link.DefaultURL(p.DocLinkBaseURL)が使用されます。
    21  	DocLinkURL func(link *DocLink) string
    22  
    23  	// DocLinkBaseURLは、DocLinkURLがnilの場合に使用され、DocLinkのURLを構築するために[DocLink.DefaultURL]に渡されます。
    24  	// 詳細については、そのメソッドのドキュメントを参照してください。
    25  	DocLinkBaseURL string
    26  
    27  	// TextPrefixは、Textメソッドを使用してテキスト出力を生成する際に、
    28  	// 各行の先頭に表示するプレフィックスです。
    29  	TextPrefix string
    30  
    31  	// TextCodePrefixは、テキスト出力を生成する際に各事前に書式設定された(コードブロック)行の先頭に印刷する接頭辞です。
    32  	// (TextPrefixに追加ではなく)。
    33  	// TextCodePrefixが空の文字列の場合、TextPrefix +"\t"がデフォルト値となります。
    34  	TextCodePrefix string
    35  
    36  	// TextWidthは生成するテキスト行の最大幅であり、Unicodeのコードポイントで測定されます。
    37  	// TextPrefixと改行文字を除いたものです。
    38  	// TextWidthがゼロの場合、TextPrefixのコードポイント数を除いた80から始まります。
    39  	// TextWidthが負の場合、制限はありません。
    40  	TextWidth int
    41  }
    42  
    43  // DefaultURLは、baseURLをプレフィックスとして他のパッケージへのリンクのためにlのドキュメンテーションURLを構築して返します。
    44  //
    45  // DefaultURLが返す可能性のある形式は以下の通りです:
    46  //   - baseURL/ImportPath、他のパッケージへのリンク
    47  //   - baseURL/ImportPath#Name、他のパッケージのconst、func、type、またはvarへのリンク
    48  //   - baseURL/ImportPath#Recv.Name、他のパッケージのメソッドへのリンク
    49  //   - #Name、このパッケージのconst、func、type、またはvarへのリンク
    50  //   - #Recv.Name、このパッケージのメソッドへのリンク
    51  //
    52  // baseURLが末尾にスラッシュで終わる場合、アンカー形式のImportPathと#の間にスラッシュが挿入されます。
    53  // 例えば、以下はいくつかのbaseURL値とそれらが生成するURLの例です:
    54  //
    55  // "/pkg/" → "/pkg/math/#Sqrt"
    56  // "/pkg"  → "/pkg/math#Sqrt"
    57  // "/"     → "/math/#Sqrt"
    58  // ""      → "/math#Sqrt"
    59  func (l *DocLink) DefaultURL(baseURL string) string
    60  
    61  // DefaultIDは見出しhのデフォルトのアンカーIDを返します。
    62  //
    63  // デフォルトのアンカーIDは、全てのアルファベットや数字以外のASCIIのランを
    64  // アンダースコアに変換し、その前に「hdr-」の接頭辞を付けることで構築されます。
    65  // 例えば、見出しのテキストが「Go Doc Comments」の場合、デフォルトのIDは「hdr-Go_Doc_Comments」となります。
    66  func (h *Heading) DefaultID() string
    67  
    68  // Commentは、コメントマーカーなしでの [Doc] の標準的なGoのフォーマットを返します。
    69  func (p *Printer) Comment(d *Doc) []byte