Documentation ¶
Overview ¶
Package source constructs public URLs that link to the source files in a module. It can be used to build references to Go source code, or to any other files in a module.
Of course, the module zip file contains all the files in the module. This package attempts to find the origin of the zip file, in a repository that is publicly readable, and constructs links to that repo. While a module zip file could in theory come from anywhere, including a non-public location, this package recognizes standard module path patterns and construct repository URLs from them, like the go command does.
Index ¶
- type Client
- type Info
- func (i *Info) DirectoryURL(dir string) string
- func (i *Info) FileURL(pathname string) string
- func (i *Info) LineURL(pathname string, line int) string
- func (i *Info) MarshalJSON() (_ []byte, err error)
- func (i *Info) ModuleURL() string
- func (i *Info) RawURL(pathname string) string
- func (i *Info) RepoURL() string
- func (i *Info) UnmarshalJSON(data []byte) (err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClientForTesting ¶
func NewClientForTesting() *Client
NewClientForTesting returns a Client suitable for testing. It returns the same results as an ordinary client for statically recognizable paths, but always returns a nil *Info for dynamic paths (those requiring HTTP requests).
type Info ¶
type Info struct { // If set, FilterPackageURL is called with package URLs included in rendered docs. // The returned value is used in place of the original package URL. FilterPackageURL func(string) string // contains filtered or unexported fields }
Info holds source information about a module, used to generate URLs referring to directories, files and lines.
func FilesInfo ¶
FilesInfo returns an Info that links to a path in the server's /files namespace. The same path needs to be installed via frontend.Server.InstallFS.
func ModuleInfo ¶
ModuleInfo determines the repository corresponding to the module path. It returns a URL to that repo, as well as the directory of the module relative to the repo root.
ModuleInfo may fetch from arbitrary URLs, so it can be slow.
func NewGitHubInfo ¶
NewGitHubInfo creates a source.Info with GitHub URL templates. It is for testing only.
func NewStdlibInfo ¶
func NewStdlibInfoForTest ¶
NewStdlibInfoForTest returns a source.Info for the standard library at the given semantic version. It panics if the version does not correspond to a Go release tag. It is for testing only.
func (*Info) DirectoryURL ¶
DirectoryURL returns a URL for a directory relative to the module's home directory.
func (*Info) FileURL ¶
FileURL returns a URL for a file whose pathname is relative to the module's home directory.
func (*Info) LineURL ¶
LineURL returns a URL referring to a line in a file relative to the module's home directory.
func (*Info) MarshalJSON ¶
MarshalJSON returns the Info encoded for storage in the database.
func (*Info) RawURL ¶
RawURL returns a URL referring to the raw contents of a file relative to the module's home directory.