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