Documentation
¶
Overview ¶
Package sidebar provides functions for building sidebar navigation from various sources.
Overview ¶
The sidebar builder supports three main modes:
- Path-based sidebars: Different sidebars for different URL paths
- Feed-linked sidebars: Auto-generated from feed posts
- Multi-feed sidebars: Combined sidebars from multiple feeds
Usage ¶
builder := sidebar.NewBuilder(config, feeds, posts) items, title := builder.ResolveForPost(post)
Index ¶
- type Builder
- func (b *Builder) BuildFromDirectory(config *models.SidebarAutoGenerate) []models.SidebarNavItem
- func (b *Builder) BuildFromFeed(feed *models.FeedConfig) []models.SidebarNavItem
- func (b *Builder) BuildFromFeeds() []models.SidebarNavItem
- func (b *Builder) BuildMultiFeed(feedSlugs []string, sections []models.MultiFeedSection) []models.SidebarNavItem
- func (b *Builder) ResolveForPost(post *models.Post) (items []models.SidebarNavItem, title string)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder constructs sidebar navigation from various sources.
func NewBuilder ¶
func NewBuilder(config *models.Config, feeds map[string]*models.FeedConfig, posts []*models.Post) *Builder
NewBuilder creates a new sidebar builder.
func (*Builder) BuildFromDirectory ¶
func (b *Builder) BuildFromDirectory(config *models.SidebarAutoGenerate) []models.SidebarNavItem
BuildFromDirectory generates sidebar items from posts in a directory.
func (*Builder) BuildFromFeed ¶
func (b *Builder) BuildFromFeed(feed *models.FeedConfig) []models.SidebarNavItem
BuildFromFeed generates sidebar items from a feed's posts.
func (*Builder) BuildFromFeeds ¶
func (b *Builder) BuildFromFeeds() []models.SidebarNavItem
BuildFromFeeds builds sidebar items from all feeds that have Sidebar enabled. Feeds are sorted by SidebarOrder.
func (*Builder) BuildMultiFeed ¶
func (b *Builder) BuildMultiFeed(feedSlugs []string, sections []models.MultiFeedSection) []models.SidebarNavItem
BuildMultiFeed generates a multi-feed sidebar with collapsible sections.
func (*Builder) ResolveForPost ¶
ResolveForPost returns the sidebar items and title for a specific post. It resolves path-specific, multi-feed, or default sidebar configurations.