generate

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package generate provides output generation from APIStyleSpec.

This package can generate various outputs from a style specification:

  • Markdown documentation (human-readable style guide)
  • Spectral YAML (linting ruleset for Spectral/vacuum)

Usage:

spec, _ := profile.Load("azure")
markdown, err := generate.Markdown(spec, nil)
spectral, err := generate.Spectral(spec, nil)

The generated outputs can be written to files or served via API.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Markdown

func Markdown(spec *types.APIStyleSpec, opts *MarkdownOptions) (string, error)

Markdown generates Markdown documentation from an APIStyleSpec.

func Spectral

func Spectral(spec *types.APIStyleSpec, opts *SpectralOptions) (string, error)

Spectral generates a Spectral-compatible YAML ruleset from an APIStyleSpec.

func WriteMkDocs added in v0.3.0

func WriteMkDocs(result *MkDocsResult, outputDir string) error

WriteMkDocs writes the MkDocs site to a directory.

Types

type MarkdownOptions

type MarkdownOptions struct {
	// IncludeTOC adds a table of contents.
	IncludeTOC bool

	// IncludeExamples includes good/bad examples.
	IncludeExamples bool

	// IncludeRationale includes rule rationales.
	IncludeRationale bool

	// IncludeReferences includes external references.
	IncludeReferences bool

	// IncludeConformance includes conformance level details.
	IncludeConformance bool

	// IncludeMetadata includes spec metadata.
	IncludeMetadata bool

	// IncludeIntroduction includes the introduction section.
	IncludeIntroduction bool

	// IncludePrinciples includes design principles.
	IncludePrinciples bool

	// IncludePatterns includes API design patterns.
	IncludePatterns bool

	// IncludeGlossary includes the glossary.
	IncludeGlossary bool

	// IncludeDescription includes rule descriptions.
	IncludeDescription bool

	// SeverityEmojis uses emojis for severity indicators.
	SeverityEmojis bool
}

MarkdownOptions configures Markdown generation.

func DefaultMarkdownOptions

func DefaultMarkdownOptions() *MarkdownOptions

DefaultMarkdownOptions returns options with all features enabled.

type MkDocsOptions added in v0.3.0

type MkDocsOptions struct {
	// SiteName is the MkDocs site name.
	SiteName string

	// SiteURL is the base URL for the site.
	SiteURL string

	// RepoURL is the source repository URL.
	RepoURL string

	// Theme is the MkDocs theme (default: material).
	Theme string

	// IncludeSearch enables search functionality.
	IncludeSearch bool

	// SplitCategories creates separate pages per category.
	SplitCategories bool

	// SplitPatterns creates separate pages per pattern.
	SplitPatterns bool

	// MarkdownOptions for generating individual pages.
	MarkdownOptions *MarkdownOptions
}

MkDocsOptions configures MkDocs site generation.

func DefaultMkDocsOptions added in v0.3.0

func DefaultMkDocsOptions() *MkDocsOptions

DefaultMkDocsOptions returns default MkDocs configuration.

type MkDocsResult added in v0.3.0

type MkDocsResult struct {
	// Config is the mkdocs.yml content.
	Config string

	// Pages maps file paths (relative to docs/) to content.
	Pages map[string]string
}

MkDocsResult contains the generated MkDocs site files.

func MkDocs added in v0.3.0

func MkDocs(spec *types.APIStyleSpec, opts *MkDocsOptions) (*MkDocsResult, error)

MkDocs generates a complete MkDocs site structure from an APIStyleSpec.

type SpectralOptions

type SpectralOptions struct {
	// IncludeDisabled includes disabled rules (commented out).
	IncludeDisabled bool

	// IncludeDescriptions adds rule descriptions as comments.
	IncludeDescriptions bool

	// SkipNonEnforceable skips rules without enforcement config.
	SkipNonEnforceable bool
}

SpectralOptions configures Spectral ruleset generation.

func DefaultSpectralOptions

func DefaultSpectralOptions() *SpectralOptions

DefaultSpectralOptions returns options with sensible defaults.

Jump to

Keyboard shortcuts

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