diff options
Diffstat (limited to 'src/go/doc/comment.go')
-rw-r--r-- | src/go/doc/comment.go | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/go/doc/comment.go b/src/go/doc/comment.go new file mode 100644 index 0000000..4f73664 --- /dev/null +++ b/src/go/doc/comment.go @@ -0,0 +1,71 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package doc + +import ( + "go/doc/comment" + "io" +) + +// ToHTML converts comment text to formatted HTML. +// +// Deprecated: ToHTML cannot identify documentation links +// in the doc comment, because they depend on knowing what +// package the text came from, which is not included in this API. +// +// Given the *[doc.Package] p where text was found, +// ToHTML(w, text, nil) can be replaced by: +// +// w.Write(p.HTML(text)) +// +// which is in turn shorthand for: +// +// w.Write(p.Printer().HTML(p.Parser().Parse(text))) +// +// If words may be non-nil, the longer replacement is: +// +// parser := p.Parser() +// parser.Words = words +// w.Write(p.Printer().HTML(parser.Parse(d))) +func ToHTML(w io.Writer, text string, words map[string]string) { + p := new(Package).Parser() + p.Words = words + d := p.Parse(text) + pr := new(comment.Printer) + w.Write(pr.HTML(d)) +} + +// ToText converts comment text to formatted text. +// +// Deprecated: ToText cannot identify documentation links +// in the doc comment, because they depend on knowing what +// package the text came from, which is not included in this API. +// +// Given the *[doc.Package] p where text was found, +// ToText(w, text, "", "\t", 80) can be replaced by: +// +// w.Write(p.Text(text)) +// +// In the general case, ToText(w, text, prefix, codePrefix, width) +// can be replaced by: +// +// d := p.Parser().Parse(text) +// pr := p.Printer() +// pr.TextPrefix = prefix +// pr.TextCodePrefix = codePrefix +// pr.TextWidth = width +// w.Write(pr.Text(d)) +// +// See the documentation for [Package.Text] and [comment.Printer.Text] +// for more details. +func ToText(w io.Writer, text string, prefix, codePrefix string, width int) { + d := new(Package).Parser().Parse(text) + pr := &comment.Printer{ + TextPrefix: prefix, + TextCodePrefix: codePrefix, + TextWidth: width, + } + w.Write(pr.Text(d)) +} |