server

package
v0.0.0-...-55358d4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2024 License: BSD-3-Clause Imports: 48 Imported by: 0

Documentation

Overview

Package server implements the Go documentation server.

Index

Constants

View Source
const (
	// MaxFileSize is the maximum file size that is allowed for reading.
	MaxFileSize = 30 * megabyte
)

Variables

View Source
var (
	ErrBlocked    = errors.New("blocked import path")
	ErrNoPackages = errors.New("no packages found")
	ErrFetching   = errors.New("fetch in progress")

	ErrInvalidPlatform = errors.New("invalid platform")
)

Functions

This section is empty.

Types

type Breadcrumb struct {
	Text       string
	ImportPath string
	Current    bool
}

Breadcrumb provides a link back to a previous page.

type Config

type Config struct {
	BrandName       string
	AdminName       string
	AdminEmail      string
	WebsiteIssues   string
	BindHTTP        string
	BindGemini      string
	Hostname        string
	CertsDir        string
	Database        string
	GoProxy         string
	Platform        string
	UserAgent       string
	FetchTimeout    time.Duration
	RequestTimeout  time.Duration
	RefreshInterval time.Duration
	MaxAge          time.Duration
}

Server configuration.

func (*Config) FlagSet

func (c *Config) FlagSet() *flag.FlagSet

type ErrMismatch

type ErrMismatch struct {
	ExpectedPath string
	ActualPath   string
}

ErrMismatch represents the case where the import path is different from the module path in the go.mod file.

func (ErrMismatch) Error

func (e ErrMismatch) Error() string

type Example

type Example struct {
	*doc.Example
	ID     string
	Symbol string
	Suffix string
	// contains filtered or unexported fields
}

Example is a doc.Example with additional information for use in templates.

type LoadMode

type LoadMode int

A LoadMode configures the amount of detail returned when loading a package.

const (
	NeedDirectories LoadMode = 1 << iota
	NeedImports
	NeedProject
)

type Package

type Package struct {
	*internal.Module
	*doc.Package

	FileSet     *token.FileSet
	Synopsis    string
	Platform    string
	Directories []database.Synopsis
	Imported    []database.Synopsis
	Message     string
	// contains filtered or unexported fields
}

Package is a doc.Package with additional information for use in templates.

func NewPackage

func NewPackage(mod *internal.Module, platform, importPath string, src *godoc.Package) (*Package, error)

NewPackage returns a new package for use in templates. If src is nil, no package documentation will be displayed.

func (*Package) AllExamples

func (p *Package) AllExamples() []*Example

AllExamples returns a list of all examples.

func (*Package) DirURL

func (p *Package) DirURL() string

DirURL returns the URL for the package directory.

func (*Package) FileURL

func (p *Package) FileURL(file string) string

FileURL returns the URL for the given file.

func (*Package) IsPackage

func (p *Package) IsPackage() bool

IsPackage reports whether p is a regular package.

func (*Package) ModuleTitle

func (p *Package) ModuleTitle() string

ModuleTitle returns a title for the module.

func (*Package) ObjExamples

func (p *Package) ObjExamples(obj any) []*Example

ObjExamples returns a list of examples for the given object.

func (*Package) PackageExamples

func (p *Package) PackageExamples() []*Example

PackageExamples returns a list of examples associated with the package.

func (*Package) SummaryURL

func (p *Package) SummaryURL() string

SummaryURL returns the URL for the project summary.

func (*Package) Title

func (p *Package) Title() string

Title returns a title for the package.

type Renderer

type Renderer struct {
	// contains filtered or unexported fields
}

Renderer provides functions to render Go documentation.

func NewRenderer

func NewRenderer(p *Package, cfg *Config) *Renderer

NewRenderer returns a new renderer for the given package.

func (*Renderer) Breadcrumbs

func (r *Renderer) Breadcrumbs(p *Package) []Breadcrumb

Breadcrumbs computes breadcrumbs for the given package.

func (*Renderer) CodeGemini

func (r *Renderer) CodeGemini(ex *doc.Example) (string, error)

CodeGemini renders example code as Gemini text.

func (*Renderer) CodeHTML

func (r *Renderer) CodeHTML(ex *doc.Example) htemp.HTML

CodeHTML renders example code as HTML.

func (*Renderer) DeclGemini

func (r *Renderer) DeclGemini(decl ast.Decl) string

DeclGemini renders a Go declaration as Gemini text.

func (*Renderer) DeclHTML

func (r *Renderer) DeclHTML(decl ast.Decl, typ *doc.Type) htemp.HTML

DeclHTML renders a Go declaration as HTML.

func (*Renderer) DocGemini

func (r *Renderer) DocGemini(text string) string

DocGemini returns formatted Gemini content for the doc comment text.

func (*Renderer) DocHTML

func (r *Renderer) DocHTML(text string) htemp.HTML

DocHTML returns formatted HTML for the doc comment text.

func (*Renderer) ExecuteGemini

func (r *Renderer) ExecuteGemini(t *template.Template, w io.Writer, data any) error

ExecuteGemini executes a Gemini text template.

func (*Renderer) ExecuteHTML

func (r *Renderer) ExecuteHTML(t *htemp.Template, w http.ResponseWriter, data any) error

ExecuteHTML executes an HTML template.

func (*Renderer) ExecuteHTTP

func (r *Renderer) ExecuteHTTP(t *template.Template, w io.Writer, data any) error

ExecuteHTTP executes an HTTP text template.

func (*Renderer) FuncString

func (r *Renderer) FuncString(decl *ast.FuncDecl) string

FuncString formats a function declaration into a single line.

func (*Renderer) GeminiFuncs

func (r *Renderer) GeminiFuncs() template.FuncMap

GeminiFuncs returns a template.FuncMap for use in Gemini templates.

func (*Renderer) HTMLFuncs

func (r *Renderer) HTMLFuncs() template.FuncMap

HTMLFuncs returns a template.FuncMap for use in HTML templates.

func (*Renderer) IsInterface

func (r *Renderer) IsInterface(t *doc.Type) bool

IsInterface reports whether t is an interface type.

func (*Renderer) PlayID

func (r *Renderer) PlayID(ex *Example) string

PlayID returns the play ID for the given example.

func (*Renderer) Query

func (r *Renderer) Query() string

Query returns the current query, if necessary.

func (r *Renderer) SourceLink(p token.Pos, text string) htemp.HTML

SourceLink returns a source link for the given position.

func (*Renderer) View

func (r *Renderer) View(importPath, view string) string

View returns a link for the current package.

type Server

type Server struct {
	// contains filtered or unexported fields
}

The Go documentation server.

func New

func New(cfg *Config) (*Server, error)

New returns a new server with the given configuration.

func (*Server) GeminiHandler

func (s *Server) GeminiHandler() (gemini.Handler, error)

func (*Server) HTTPHandler

func (s *Server) HTTPHandler() (http.Handler, error)

func (*Server) Refresh

func (s *Server) Refresh(ctx context.Context)

Refresh refreshes the oldest module in the database.

type TemplateMap

type TemplateMap map[string]interface {
	Execute(io.Writer, interface{}) error
}

func (TemplateMap) Execute

func (m TemplateMap) Execute(w io.Writer, name string, data interface{}) error

func (TemplateMap) ExecuteHTML

func (m TemplateMap) ExecuteHTML(resp http.ResponseWriter, name string, data interface{}) error

func (TemplateMap) HTML

func (m TemplateMap) HTML(name string) *htemp.Template

func (TemplateMap) ParseHTML

func (m TemplateMap) ParseHTML(name string, funcs htemp.FuncMap, fsys fs.FS) error

func (TemplateMap) ParseText

func (m TemplateMap) ParseText(name string, funcs ttemp.FuncMap, fsys fs.FS) error

func (TemplateMap) Text

func (m TemplateMap) Text(name string) *ttemp.Template

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL