This site provides a machine-readable index at /llms.txt.

Skip to main content Skip to navigation

BlogSiteOptions Pennington.BlogSite

Options record passed to AddBlogSite that configures the BlogSite template: site identity, content paths, typography, author chrome, homepage composition (hero, project cards, social links, nav), and feed toggles (RSS, sitemap).

Properties

AdditionalHtmlHeadContent string?
Default: null
Raw HTML appended to the document <head> (for analytics, meta tags, etc.).
AdditionalRoutingAssemblies System.Reflection.Assembly[]
Default: []
Additional assemblies scanned for Razor components so out-of-project pages participate in routing.
AuthorBio string?
Default: null
Short author bio displayed on the homepage and post pages.
AuthorName string?
Default: null
Author name displayed in the byline and RSS channel.
BlogBaseUrl string
Default: "/blog"
URL prefix under which blog posts are published.
BlogContentPath string
Default: "Blog"
Folder (relative to ContentRootPath) containing blog post markdown files.
BodyFontFamily string?
Default: null
CSS font-family stack used for body copy.
CanonicalBaseUrl string?
Default: null
Absolute base URL used to build canonical links, sitemap, and RSS entries.
ColorScheme Pennington.MonorailCss.IColorScheme?
Default: null
Color scheme driving the MonorailCSS theme. Defaults to the built-in BlogSite palette when null.
ContentRootPath string
Default: "Content"
Root folder (relative to the content project) that holds the content tree.
Description string
required
Short description used for the meta description tag and RSS channel.
DisplayFontFamily string?
Default: null
CSS font-family stack used for display type (headings).
EnableRss bool
Default: true
When true, an RSS feed is generated for blog posts.
EnableSitemap bool
Default: true
When true, a sitemap.xml is generated for the site.
ExtraStyles string?
Default: null
Additional CSS appended to the generated stylesheet.
FontPreloads Pennington.Infrastructure.FontPreload[]
Default: []
Fonts to preload via <link rel="preload"> for faster first paint.
HeroContent Pennington.BlogSite.HeroContent?
Default: null
Homepage hero content. When null, the hero section is not rendered.
MainSiteLinks Pennington.BlogSite.HeaderLink[]
Default: []
Navigation links rendered in the site header.
MyWork Pennington.BlogSite.Project[]
Default: []
Featured projects displayed on the homepage.
SiteTitle string
required
Site title shown in the header, OpenGraph tags, and RSS channel.
SocialMediaImageUrlFactory System.Func<Pennington.BlogSite.BlogPostPage, string>?
Default: null
Factory producing a social-share image URL for a given post. Return null to fall back to defaults.
Socials Pennington.BlogSite.SocialLink[]
Default: []
Social media links rendered in the site chrome.
TagsPageUrl string
Default: "/tags"
URL for the tag index page.

Pennington.BlogSite.BlogSiteOptions

namespace Pennington.BlogSite;

/// Options record passed to AddBlogSite that configures the BlogSite template: site identity, content paths, typography, author chrome, homepage composition (hero, project cards, social links, nav), and feed toggles (RSS, sitemap).
public record BlogSiteOptions
{
    /// Raw HTML appended to the document <head> (for analytics, meta tags, etc.).
    
public string? AdditionalHtmlHeadContent { get; init; }
/// Additional assemblies scanned for Razor components so out-of-project pages participate in routing.
public Assembly[] AdditionalRoutingAssemblies { get; init; } = [];
/// Short author bio displayed on the homepage and post pages.
public string? AuthorBio { get; init; }
/// Author name displayed in the byline and RSS channel.
public string? AuthorName { get; init; }
/// URL prefix under which blog posts are published.
public string BlogBaseUrl { get; init; } = "/blog";
/// Folder (relative to ContentRootPath) containing blog post markdown files.
public string BlogContentPath { get; init; } = "Blog";
/// CSS font-family stack used for body copy.
public string? BodyFontFamily { get; init; }
/// Absolute base URL used to build canonical links, sitemap, and RSS entries.
public string? CanonicalBaseUrl { get; init; }
/// Color scheme driving the MonorailCSS theme. Defaults to the built-in BlogSite palette when null.
public IColorScheme? ColorScheme { get; init; }
/// Root folder (relative to the content project) that holds the content tree.
public string ContentRootPath { get; init; } = "Content";
/// Short description used for the meta description tag and RSS channel.
public required string Description { get; init; }
/// CSS font-family stack used for display type (headings).
public string? DisplayFontFamily { get; init; }
/// When true, an RSS feed is generated for blog posts.
public bool EnableRss { get; init; } = true;
/// When true, a sitemap.xml is generated for the site.
public bool EnableSitemap { get; init; } = true;
/// Additional CSS appended to the generated stylesheet.
public string? ExtraStyles { get; init; }
/// Fonts to preload via <link rel="preload"> for faster first paint.
public FontPreload[] FontPreloads { get; init; } = [];
/// Homepage hero content. When null, the hero section is not rendered.
public HeroContent? HeroContent { get; init; }
/// Navigation links rendered in the site header.
public HeaderLink[] MainSiteLinks { get; init; } = [];
/// Featured projects displayed on the homepage.
public Project[] MyWork { get; init; } = [];
/// Site title shown in the header, OpenGraph tags, and RSS channel.
public required string SiteTitle { get; init; }
/// Factory producing a social-share image URL for a given post. Return null to fall back to defaults.
public Func<BlogPostPage, string>? SocialMediaImageUrlFactory { get; init; }
/// Social media links rendered in the site chrome.
public SocialLink[] Socials { get; init; } = [];
/// URL for the tag index page.
public string TagsPageUrl { get; init; } = "/tags";
}