output

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Jan 3, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package output provides formatting and file writing for link check reports.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FormatReport

func FormatReport(report *Report, format Format) ([]byte, error)

FormatReport formats a report using the specified format.

func IsValidFormat

func IsValidFormat(s string) bool

IsValidFormat checks if a format string is valid.

func ValidFormats

func ValidFormats() []string

ValidFormats returns all valid format strings.

func WriteToFile

func WriteToFile(report *Report, filename string) error

WriteToFile writes a formatted report to a file.

Types

type Format

type Format string

Format represents an output format type.

const (
	// FormatJSON outputs as JSON.
	FormatJSON Format = "json"
	// FormatYAML outputs as YAML.
	FormatYAML Format = "yaml"
	// FormatXML outputs as generic XML.
	FormatXML Format = "xml"
	// FormatJUnit outputs as JUnit XML for CI/CD integration.
	FormatJUnit Format = "junit"
	// FormatMarkdown outputs as a Markdown report.
	FormatMarkdown Format = "markdown"
)

func InferFormat

func InferFormat(filename string) (Format, error)

InferFormat determines the output format from a filename extension.

type Formatter

type Formatter interface {
	Format(report *Report) ([]byte, error)
}

Formatter is the interface that output formatters implement.

func GetFormatter

func GetFormatter(format Format) (Formatter, error)

GetFormatter returns the appropriate formatter for a format.

type IgnoredURL

type IgnoredURL struct {
	URL    string
	File   string
	Reason string // "domain", "pattern", or "regex"
	Rule   string // The rule that matched
	Line   int
}

IgnoredURL represents a URL that was ignored by filter rules.

type JSONFormatter

type JSONFormatter struct{}

JSONFormatter formats reports as JSON.

func (*JSONFormatter) Format

func (*JSONFormatter) Format(report *Report) ([]byte, error)

Format implements Formatter.

type JUnitFormatter

type JUnitFormatter struct{}

JUnitFormatter formats reports as JUnit XML for CI/CD integration. Only failed/error links are included as test cases.

func (*JUnitFormatter) Format

func (*JUnitFormatter) Format(report *Report) ([]byte, error)

Format implements Formatter.

type MarkdownFormatter

type MarkdownFormatter struct{}

MarkdownFormatter formats reports as Markdown.

func (*MarkdownFormatter) Format

func (m *MarkdownFormatter) Format(report *Report) ([]byte, error)

Format implements Formatter.

type Report

type Report struct {
	GeneratedAt time.Time
	Files       []string
	Results     []checker.Result
	Ignored     []IgnoredURL
	Summary     checker.Summary
	TotalLinks  int
	UniqueURLs  int

	// Stats contains performance statistics when --stats flag is used.
	// This is a map to allow flexible serialization to JSON/YAML.
	Stats map[string]any `json:"stats,omitempty" yaml:"stats,omitempty"`
}

Report contains all data needed for output formatting.

type XMLFormatter

type XMLFormatter struct{}

XMLFormatter formats reports as generic XML.

func (*XMLFormatter) Format

func (*XMLFormatter) Format(report *Report) ([]byte, error)

Format implements Formatter.

type YAMLFormatter

type YAMLFormatter struct{}

YAMLFormatter formats reports as YAML.

func (*YAMLFormatter) Format

func (*YAMLFormatter) Format(report *Report) ([]byte, error)

Format implements Formatter.

Jump to

Keyboard shortcuts

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