Documentation
¶
Overview ¶
Package renderer provides deterministic Markdown rendering for changelogs.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrInvalidPreset = errors.New("invalid preset")
ErrInvalidPreset is returned when an invalid options preset name is provided.
Functions ¶
func RenderMarkdown ¶
RenderMarkdown renders a changelog to Keep a Changelog formatted Markdown. The output is deterministic: same input always produces identical output.
Types ¶
type Config ¶ added in v0.4.0
type Config struct {
Preset string // default, minimal, full, core, standard
MaxTier string // optional tier override
Locale string // optional BCP 47 locale tag override
LocaleOverrides string // optional path to locale override JSON file
}
Config holds configuration for rendering options.
type Options ¶
type Options struct {
// IncludeReferences includes issue/PR links in entries.
IncludeReferences bool
// IncludeCommits includes commit SHAs in references.
IncludeCommits bool
// LinkReferences creates hyperlinks for issues, PRs, and commits
// when a repository URL is available. Requires IncludeReferences.
LinkReferences bool
// IncludeAuthors appends author attribution for external contributors.
// Authors listed in Changelog.Maintainers or known bots are excluded.
IncludeAuthors bool
// IncludeSecurityMetadata includes CVE/GHSA/severity in security entries.
IncludeSecurityMetadata bool
// MarkBreakingChanges prefixes breaking changes with **BREAKING:**.
MarkBreakingChanges bool
// IncludeCompareLinks adds version comparison links at the bottom.
IncludeCompareLinks bool
// IncludeUnreleasedLink adds an [Unreleased] link comparing latest version to HEAD.
// This lets users see what's been merged since the last release.
IncludeUnreleasedLink bool
// CompactMaintenanceReleases groups consecutive maintenance-only releases
// (those with only dependencies, documentation, build, tests, internal changes)
// into a single compact section like "## Versions 0.71.1 - 0.71.10 (Maintenance)".
CompactMaintenanceReleases bool
// MaxTier filters change types to include only those at or above this tier.
// Default is TierOptional (include all).
MaxTier changelog.Tier
// Locale specifies the BCP 47 locale tag for output (e.g., "en", "fr", "de").
// Default is "en" (English).
Locale string
// LocaleOverrides specifies a path to a JSON file with locale message overrides.
// Only the messages specified in this file will be replaced; others use defaults.
LocaleOverrides string
}
Options controls how the Markdown is rendered.
func CoreOptions ¶ added in v0.4.0
func CoreOptions() Options
CoreOptions returns options for KACL-compliant core output.
func DefaultOptions ¶
func DefaultOptions() Options
DefaultOptions returns the default rendering options. Includes commit links and reference linking when repository URL is available.
func FullOptions ¶
func FullOptions() Options
FullOptions returns options for maximum detail. Same as DefaultOptions but with CompactMaintenanceReleases disabled to show all releases expanded instead of grouping maintenance releases.
func MinimalOptions ¶
func MinimalOptions() Options
MinimalOptions returns options for minimal output.
func OptionsFromConfig ¶ added in v0.4.0
OptionsFromConfig creates Options from a Config struct. It first applies the preset, then overrides MaxTier, Locale, and LocaleOverrides if specified.
func OptionsFromPreset ¶ added in v0.4.0
OptionsFromPreset returns options for the given preset name. Valid presets are: default, minimal, full, core, standard.
func StandardOptions ¶ added in v0.4.0
func StandardOptions() Options
StandardOptions returns options including standard tier types.
func (Options) WithLocale ¶ added in v0.10.0
WithLocale returns a copy of the options with the Locale field set.
func (Options) WithLocaleOverrides ¶ added in v0.10.0
WithLocaleOverrides returns a copy of the options with the LocaleOverrides field set.