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
AdditionalHtmlHeadContentstring- Raw HTML appended to the document
<head>(for analytics, meta tags, etc.). AdditionalRoutingAssembliesAssembly[]- Additional assemblies scanned for Razor components so out-of-project pages participate in routing.
AuthorBiostring- Short author bio displayed on the homepage and post pages.
AuthorNamestring- Author name displayed in the byline and RSS channel.
BlogBaseUrlstring- URL prefix under which blog posts are published.
BlogContentPathstring- Folder (relative to
ContentRootPath) containing blog post markdown files. CanonicalBaseUrlstring- Absolute base URL used to build canonical links, sitemap, and RSS entries.
ColorSchemeIColorScheme- Color scheme driving the MonorailCSS theme. Defaults to the built-in BlogSite palette when null.
ContentRootPathFilePath- Root folder (relative to the content project) that holds the content tree.
EnableRssbool- When true, an RSS feed is generated for blog posts.
EnableSitemapbool- When true, a sitemap.xml is generated for the site.
ExtraStylesstring- Additional CSS appended to the generated stylesheet.
FaviconsFaviconOptions- Favicon / icon links. Forwarded to
Favicons. FontPreloadsFontPreload[]- Fonts to preload via
<link rel="preload">for faster first paint. HeroContentHeroContent- Homepage hero content. When null, the hero section is not rendered.
MainSiteLinksHeaderLink[]- Navigation links rendered in the site header.
MyWorkProject[]- Featured projects displayed on the homepage.
PostsPerPageint- Number of posts per page on the archive listing. Set to a non-positive value to disable pagination.
SiteDescriptionstring- requiredShort description used for the meta description tag and RSS channel.
SiteTitlestring- requiredSite title shown in the header, OpenGraph tags, and RSS channel.
SocialCardsSocialCardOptions- Enables generated per-post social cards. When set, each post's
og:image/twitter:imagepoints at an on-demand-rendered card (unlessSocialMediaImageUrlFactoryreturns a URL for that post, which wins). The host supplies the drawing viaRender. SocialMediaImageUrlFactoryFunc<BlogPostRef<BlogSiteFrontMatter>, string>- Factory producing a social-share image URL for a given post. Return null to fall back to defaults.
SocialsSocialLink[]- Social media links rendered in the site chrome.
StandardSiteStandardSiteOptions- Standard Site (AT Protocol) integration. Forwarded to
StandardSite. StylesDictionary<string, string>- Per-slot CSS class overrides keyed by
StyleKeysconstants. Each value is Tailwind-merged over the component default for that slot — conflicting utilities are replaced, non-conflicting ones kept. The BlogSite chrome has no registry-keyed slots yet; overrides apply to Pennington.UI components composed in custom layouts. Unknown keys throw at startup. Write values as compile-time string literals — MonorailCSS class discovery scans IL string literals and cannot see runtime-built strings.
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; set; }
/// Additional assemblies scanned for Razor components so out-of-project pages participate in routing.
public Assembly[] AdditionalRoutingAssemblies { get; set; }
/// Short author bio displayed on the homepage and post pages.
public string AuthorBio { get; set; }
/// Author name displayed in the byline and RSS channel.
public string AuthorName { get; set; }
/// URL prefix under which blog posts are published.
public string BlogBaseUrl { get; set; }
/// Folder (relative to ContentRootPath) containing blog post markdown files.
public string BlogContentPath { get; set; }
/// Absolute base URL used to build canonical links, sitemap, and RSS entries.
public string CanonicalBaseUrl { get; set; }
/// Color scheme driving the MonorailCSS theme. Defaults to the built-in BlogSite palette when null.
public IColorScheme ColorScheme { get; set; }
/// Root folder (relative to the content project) that holds the content tree.
public FilePath ContentRootPath { get; set; }
/// When true, an RSS feed is generated for blog posts.
public bool EnableRss { get; set; }
/// When true, a sitemap.xml is generated for the site.
public bool EnableSitemap { get; set; }
/// Additional CSS appended to the generated stylesheet.
public string ExtraStyles { get; set; }
/// Favicon / icon links. Forwarded to Favicons.
public FaviconOptions Favicons { get; set; }
/// Fonts to preload via <link rel="preload"> for faster first paint.
public FontPreload[] FontPreloads { get; set; }
/// Homepage hero content. When null, the hero section is not rendered.
public HeroContent HeroContent { get; set; }
/// Navigation links rendered in the site header.
public HeaderLink[] MainSiteLinks { get; set; }
/// Featured projects displayed on the homepage.
public Project[] MyWork { get; set; }
/// Number of posts per page on the archive listing. Set to a non-positive value to disable pagination.
public int PostsPerPage { get; set; }
/// Short description used for the meta description tag and RSS channel.
public string SiteDescription { get; set; }
/// Site title shown in the header, OpenGraph tags, and RSS channel.
public string SiteTitle { get; set; }
/// Enables generated per-post social cards. When set, each post's og:image/twitter:image points at an on-demand-rendered card (unless SocialMediaImageUrlFactory returns a URL for that post, which wins). The host supplies the drawing via Render.
public SocialCardOptions SocialCards { get; set; }
/// Factory producing a social-share image URL for a given post. Return null to fall back to defaults.
public Func<BlogPostRef<BlogSiteFrontMatter>, string> SocialMediaImageUrlFactory { get; set; }
/// Social media links rendered in the site chrome.
public SocialLink[] Socials { get; set; }
/// Standard Site (AT Protocol) integration. Forwarded to StandardSite.
public StandardSiteOptions StandardSite { get; set; }
/// Per-slot CSS class overrides keyed by StyleKeys constants. Each value is Tailwind-merged over the component default for that slot — conflicting utilities are replaced, non-conflicting ones kept. The BlogSite chrome has no registry-keyed slots yet; overrides apply to Pennington.UI components composed in custom layouts. Unknown keys throw at startup. Write values as compile-time string literals — MonorailCSS class discovery scans IL string literals and cannot see runtime-built strings.
public Dictionary<string, string> Styles { get; set; }
}